文章目录
1.整数溢出
补充有关整数范围的知识
2.有关char的底层行为
3.有关于段错误的一些东东
**例子1:
**例子2**
4.为什么浮点数多打印几位发现不能精确表示?
5. int float double的转化中出现的问题
*1.该问题的解决**
**2.如果一个正常的int型数转成float会怎样?**
**3.如果一个处在float型空洞的int型数据转成float会怎样?**
6. 用float,int,short来输出字符串
1.整数溢出
为什么后面输出的结果这样了呢?
50000*50000实际结果应该为2500000000。转化为16进制为9502f900.
将9502f900转化为二进制:10010101000000101111100100000000
由于首位应该是符号位,所以计算机识别的时候把首位作为符号位,这是一个负数,所以是补码,原码是1(符号位)101010111111010000011100000000,将这个数转成十进制结果为-1794967296.
补充有关整数范围的知识
int的范围是-2147483648~2147483647。
计算方法如下:
计算机中32位int类型变量的范围,其中int类型是带符号整数。
正数在计算机中表示为原码,最高位为符号位:
2147483647:
原码为0111 1111 1111 1111 1111 11