九.有符号数和无符号数的取值范围
ps:特殊规定10000000(-128)
1.几道练习题
例1:无符号变量有时候可能会导致死循环,注意条件。
例2:有符号数char的取值范围,(结合圆形图加深理解)
0000000000000000000000010000000原反补 截断 10000000 整型提升 1111111111111111111111110000000 最后打印4294967167(无负号) 128在一个有符号的char(-128~127)永远放不下
重点:strlen要关注到\0的字符,也就是ascall码值0;且是按照字节进行查找;
十.浮点型在内存中的存储
1.常见的浮点数: 3.142 / 1E10 (1.0*10) 10次方
2.浮点数家族包括float,double,long,double
3.根据国际标准IEEE(电器和电子工程协会)754,任意一个二进制浮点数V可以表示成下面的形式:
(-1)^S * M * 2^E
(-1)^S 表示符号位,当S=0时,其为正数;当S=1时,其为负数;
2^E表示指数位;
M表示有效数字,(大于等于1,小于2);
例如:
浮点数会丢失精度的原因 :
十进制数的二进制表示形式可能不精确
十.浮点数空间储存划分
十一.浮点数的一些特殊规则
例如:1.001——>001 000000000000000000000
PS:对于64位浮点数:则需+1028;
例如:
十二.指数位如何从内存中取出(三种情况)
情况一:E不全为0或不全为1
情况二:E全为0
情况三:E全为1
例题分析: 如何解释下面的代码结果
对于第二行出现0.000000分析:不难发现是E全为0的情况
对于第三行出现1091567616分析:不难发现是考察浮点数的存入(题中以整型打印)