c语言中二进制补码问题
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/23 15:45:49
c语言中二进制补码问题
在十六位机子中如果最高位是符号位那比如十进制数32767的二进制原码是1100000000001001 可它的最高位是1但是正数啊!
在十六位机子中如果最高位是符号位那比如十进制数32767的二进制原码是1100000000001001 可它的最高位是1但是正数啊!
32767=2的15次方-1 = 01111111 11111111 你怎么得来的“原码是1100000000001001”?
原码:人为规定的一种数据概念,最高位为符号位,其余位为数值位,实际应用中不用
反码:也是人为规定的数据概念,正数原码即是反码,负数反码:符号位不动,数值位按位取反,实际应用中不用
补码:计算机中实际存储数据的格式,真正的数据应用.
正数的原码即是补码
负数的补码是反码+1
原码:人为规定的一种数据概念,最高位为符号位,其余位为数值位,实际应用中不用
反码:也是人为规定的数据概念,正数原码即是反码,负数反码:符号位不动,数值位按位取反,实际应用中不用
补码:计算机中实际存储数据的格式,真正的数据应用.
正数的原码即是补码
负数的补码是反码+1