有符号位的二进制数,在计算原码和补码时那个符号位是始终不变的吗?没有符号位的二进制数,补码(负数用补码表示)就是原码各位取反,末位+1.如 用8位二进制数表示十进制数 :12的原码为
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 10:35:01
有符号位的二进制数,在计算原码和补码时那个符号位是始终不变的吗?没有符号位的二进制数,补码(负数用补码表示)就是原码各位取反,末位+1.如 用8位二进制数表示十进制数 :12的原码为
有符号位的二进制数,在计算原码和补码时那个符号位是始终不变的吗?
没有符号位的二进制数,补码(负数用补码表示)就是原码各位取反,末位+1.
如 用8位二进制数表示十进制数 :
12的原码为 00001100
-12的补码为:( 00001100)取反得(11110011),末位+1,得(11110100)
有符号位的数据类型如 byte 型,占8为二进制数,最高位是符号位
如一个byte型变量的内存存储状态为10000000
怎样计算它的值?逆推:补码10000000末位-1,得(01111111),各位取反得原码(10000000),转换为10进制数是128,因为是负数,所以是-128
逆推过程中符号位改变了.各位取反得到的原码(10000000)是没有符号位的,所以1不是符号位?
我的逻辑对吗?还有什么需要补充的?那个符号位的问题有点纠结
有符号位的二进制数,在计算原码和补码时那个符号位是始终不变的吗?没有符号位的二进制数,补码(负数用补码表示)就是原码各位取反,末位+1.如 用8位二进制数表示十进制数 :12的原码为
对于无符号数而言,没有什么原码、反码、补码的概念,只有绝对值.
对于带符号数,才会有采用什么码型来表示的问题.10000000确实是-128的补码.对于带符号数,最高位是符号位,0表示正数、1表示负数,始终不变.所有的码型换算,都只针对低位的绝对值部分进行.
例如12的原码是00001100,-12的原码是10001100.对其绝对值部分0001100求反加1得1110100,最高位添上符号位1,就是补码11110100.
所以码型转换运算只针对绝对值部分,不针对符号位,符号位始终不变.