只举一个例子3276932769转换为二进制数为1000000000000001(共十六位),即为其原码,由于是正数,存在内在中的时候就会原样放入用%d输出的时候,就会去读取内存,由于最高位是1,就会认为是负数,会将其转换为相应的原码(减1再取反)也就是0111111111111111,再转换为十进制数就是32767,由于是负数,就会输出-32767.如果用%ld输出,不同的编译器会得到不同的结果,这个地方就不说了
谢谢
知道了 那如果一个足够大的数 99999999转换为2进制 超过16位 但把他定义为INT型时 是截取前16位还是后16位
应该会截取低八位输出.