《C语言基础日常笔记》
1. 类型转换-----------------20130902
a, 浮点数(包括单精度与双精度)赋值给整型变量时,舍弃浮点数的小数部分,直接将其整数部分存放在整型变量里。
b, 整型变量赋值给浮点数(包括单精度与双精度)时,数值不变,但会以浮点数形式保存到变量里。
c, 将一个double型数据赋值给float型变量时,截取其前面7位有效数字,存放在float的存储单元中。
d, 无符号char型赋值给整型变量时,则将其char型的8位直接放到int的低8位中,高8位补0。
e, 有符号char赋值给int时,则将其char型的8位直接放到int的低8位中,如果字符最高位(即符号位)为1,高8位补1,相反,如果符号位为0,则高8位补0。
f, 将一个int,short,long赋值给一个char时,只要将其低8位拷贝到char型即可。
g,有符号int 赋值给long时,也要进行符号扩展。与类似,假设int 占2个字节,long 占4个字节,则将Int直接赋值到低16位,高16位则根据int的符号位的1,0分别全部补为1或者0.
h,将无符号int赋值给long 时,不存在符号扩展,直接将其拷贝在低16位,高16位补0即可。
i, 将无符号数据赋值给等长度的有符号变量时,直接拷贝即可。
总结: 相对的短类型变量赋值给长类型变量时,将短类型变量直接拷贝到长类型变量的低位,而高位是否需要进行符号扩展,则根据该短类型变量是否是有符号的来决定,如果是有符号的,则根据该变量符号位的值1或者0,将其高位全部设置为1或者0,如果是无符号的,则不需要扩展,高位直接补0即可。
2. 整型常理的表示方法:
a. 八进制整数,以0开头的数是八进制整数,如0123表示八进制数123,换为十进制为83,-011表示八进制-11,即十进制-9.
b. 十六进制整数,以0x开头的是十六进制整数,如0x123。
3. 负数的补码与原码的求值:补码--->原码:各位取反加1,原码---->补码:绝对值各位取反加1.
4.