C语言学习笔记(一)赋值运算符,逗号运算符

来源:互联网 发布:淘宝卖什么东西最好卖 编辑:程序博客网 时间:2024/04/28 20:42

 

赋值运算符

(1)      将实型数据赋给整型变量时:舍弃小数部分。例:i为整型变量,执行i=3.56的结果是使i的值为3.

(2)      将整数赋给单、双精度变量时,数值不变,但以浮点数形式存放到变量中,如:23赋给float变量f,即f=23,先将23转化为23.00000,再存放到f中。如将23赋给double的变量d中,即d=23,则将23补足有效位数为23.00000000000000,然后存储到d中。

(3)      将一个double型的数据赋给float变量时,截取其前7位的有效数字,存放到float型的存储单元(32位)中。但应注意数值范围不能溢出。将一个float型数据赋给一个double型的变量时,数值不变,有效位扩展到16为,在内存中以64为(bit)存储。

(4)      字符型数据赋给整形变量时,由于字符只占一个字节,而整型变量占2个字节,因此将字符数据(8位)存放到整型变量最低8位中,有两种情况:a:如果所有系统将字符处理位无符号的量或对unsigned  char型变量赋值,则将字符的8位放到整型的低8位中,高位补零。b:如果是signed char 若字符最高位0,则整型变量高位补0,若字符最高位为1则整型变量高位补1.

(5)      将一个intshortlong型的数据赋给一个char型变量时,只将其低8位原封不动地送到char型变量中。

(6)      将带符号的整型数据赋给long型的变量时,要进行符号扩展,将整型的16位送到long型的16位中,如果int型的数据为正值(符号位为0),则long型变量高16位部0,若为负值,则补1,以保持数值不变。

(7)      unsigned int 型数据赋给long int 型变量时,不存在符号扩展问题,只需将高位补0即可。

                             逗号运算符和逗号表达式

     表达式1,表达式2

    逗号表达式的求解过程是:先求解表达式1,再求解表达式2.整个表达式的值是表达式2的值。例:a=3*5a*4   结果是60,因为赋值表达式的优先级高于逗号表达式。

 

 

1、 整型变量在内存中的存放形式:数据在内存中是以二进制形式存放的。例:十进制的10的二进制形式是1010,在微机上使用的C编译系统,每一个整型变量在内存中占两个字节。实际的存放情况是:00000000 00001010.实际上数值是以补码形式表示的。一个正数的补码和其原码的形式相同。如果数值是负的,求负数的补码的方式,将该数的绝对值的二进制形式,按位取反再加1.整数的16位中,最左面的一位是表示符号的,该位位0,表示数值位正,为1表示数值为负。

2、 实型数据在内存中的存放形式:一个实型数据在内存中占4个字节(32位),与整型数据的存储方式不同,实型数据是按照指数形式存放的。系统把一个实数分成小数部分和指数部分分别存放。在4字节(32位)中,究竟多少位存放小数,多少位存放指数,标准C无具体规定,由各编译系统自定。

3、 字符数据在内存中的存储形式:将该字符的ASCII代码存放到存储单元中。

原创粉丝点击