知识收集
1.数据在内存中是以二进制码的方式存储,而当你查看的时候是16进制,因为16进制方便查看。
2.正数的源码,反码,补码相同,或者可以说正数没有反码补码
3.负数用二进制的第一位来代表符号位,1代表负数,0代表正数;
负数的反码是符号位不变,其余位0变1,1变0;
补码是在反码基础上加一,保持符号位不变。
4.%d打印有符号的十进制整数;
%u打印无符号的十进制整数,负数的符号位会当成有效位。
5.在进行打印时,如果原数据范围小,打印的时候范围打,比如原数据char类型,打印%d时,会先把数据转成int,然后再打印,转的时候会进行高位填充,原数据正数就填充全0,原数据负数就填充全1.
6.如果数据大于定义类型的范围,会进行截断。
比如unsigned char类型(0~255),存一个257,二进制为(1 0000 0001),截断后就变成(0000 0001)了。