主要是因为数值在内存中是以补码形式存在,所以你的1000000000000001是原码而不是补码,补码是原码按位取反再+1所得。
至于'\0',本身是一个转义字符,代表字符串结束。
知道反码和补码么?反码就是负数除了符号位都反过来,正数不变补码是负数的反码+个1,正数不变这是为了计算减法用的,因为计算机无法进行减法计算,遇到减法就直接按照补码进行加法运算就直接出结果了.
因此,-1:1000000000000001,反码1111111111111110,补码1111111111111111
我是菜鸟 参与一下
数值在内存中 ,是以二进制的补码的形式存在的,而且-1最高位不是有效数位是符号位.
\0 是字符串结束标志