二进制(signed or unsigned)补码

简介: 在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
在计算机系统中,数值一律用补码来表示(存储)。 
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 
补码与原码的转换过程几乎是相同的。 
数值的补码表示也分两种情况: 
(1)正数的补码:与原码相同。 
      例如,+9的补码是00001001。 
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。 
      例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码 
     0000111按位取反为1111000;再加1,所以-7的补码是11111001。 
已知一个数的补码,求原码的操作分两种情况: 
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。 
(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。 
     例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为   “1”;其余7位1111001取反后为0000110;再加1,所以是10000111。
 
 
目录
相关文章
|
1天前
|
编译器 C++
C++_int负数转unsigned
C++_int负数转unsigned
6 0
|
2月前
|
存储 编译器 C++
【C/C++】C/C++编程——整型(一)
【C/C++】C/C++编程——整型(一)
27 1
|
3月前
|
存储 编译器 程序员
learn_C_deep_4 (类型和变量命名、sizeof(int) *p表示什么意思、原码、反码和补码的概念、计算机中数据计算时,为什么要转为二级制、unsigned和signed关键字)
learn_C_deep_4 (类型和变量命名、sizeof(int) *p表示什么意思、原码、反码和补码的概念、计算机中数据计算时,为什么要转为二级制、unsigned和signed关键字)
|
3月前
|
C语言
[C语言][题]两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同。
[C语言][题]两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同。
19 1
|
4月前
signed和unsigned
signed和unsigned
|
4月前
|
存储
进制转换和整型提升
进制转换和整型提升
|
6月前
|
存储 小程序 程序员
8k字详解整型(int)/字符型(char)/浮点型(float)/有符号(signed)/无符号(unsigned)数据在内存中的存储【程序员内功修炼/C语言】
8k字详解整型(int)/字符型(char)/浮点型(float)/有符号(signed)/无符号(unsigned)数据在内存中的存储【程序员内功修炼/C语言】
63 0
|
6月前
|
数据处理 C++
C++-bit转hex(四位二进制转十六进制)
C++-bit转hex(四位二进制转十六进制)
|
8月前
|
存储
位(bit) \字节(byte)\十六进制
位(bit) \字节(byte)\十六进制
|
8月前
|
存储 C语言
char&short的整形提升
char&short的整形提升
46 0