原码反码补码
在计算机中是以补码的方式进行储存数据的,在四则运算,按位运算, 移位运算 时都是用
补码进行操作的。
一. 原码
在计算机二进制数中: 0表示正数 1表示负数
int 1
它的原码是:
0
000 0000 0000 0000 0000 0000
0
000 0001 说明 : 其中 "
0
"是符号位,表示为正数
int -
1
它的原码是:
1
000 0000 0000 0000 0000 0000
0
000 0001 说明 : 其中 "
1
"是符号位,表示为负数
int 300
它的原码是:
0
000 0000 0000 0000
0
000 0001
0010 1100
说明 : 其中 "
0
"是符号位,表示为正数
int
-
300
它的原码是:
1
000 0000 0000 0000
0
000 0001
0010 1100
说明 : 其中 "
1
"是符号位,表示为
负
数
二. 反码
正数的反码是它本身
负数的反码,符号位不发生变化, 其它位则要进行变化
int 1
它的原码是:
0
000 0000 0000 0000 0000 0000
0
000 0001
它的
反
码是:
0
000 0000 0000 0000 0000 0000
0
000 0001
说明 : 原码与反码相同
int -
1
它的原码是:
1
000 0000 0000 0000 0000 0000
0
000 0001 说明 : 其中 "
1
"是符号位,表示为负数
它的反码是:
1
111 1111 1111 1111 1111 1111
1111 1110
说明 : 其中
符号位没有发生变化
int
300
它的原码是:
0
000 0000 0000 0000
0
000 0001
0010 1100
说明 : 其中 "
0
"是符号位,表示为正数
它的反码是:
0
000 0000 0000 0000
0
000 0001
0010 1100
int
-
300
它的原码是:
1
000 0000 0000 0000
0
000 0001
0010 1100
说明 : 其中 "
1
"是符号位,表示为
负
数
它的反码是:
1
111 1111 1111 1111
1111 1110 1101 0011
说明 : 其中
符号位没有发生变化
三. 补码
补码是在反码的基础上加1
正数的补码是其本身
负数的补码
是在其反码的基础上加1
int 1
它的原码是:
0
000 0000 0000 0000 0000 0000
0
000 0001
它的
反
码是:
0
000 0000 0000 0000 0000 0000
0
000 0001
说明 : 原码与反码相同
它的
补
码是:
0
000 0000 0000 0000 0000 0000
0
000 00
01
int -
1
它的原码是:
1
000 0000 0000 0000 0000 0000
0
000 0001 说明 : 其中 "
1
"是符号位,表示为负数
它的反码是:
1
111 1111 1111 1111 1111 1111
1111 1110
说明 : 其中
符号位没有发生变化
它的补码是:
1
111 1111 1111 1111 1111 1111
1111 111
1
说明:
补码是在反码的基础上加1
int
300
它的原码是:
0
000 0000 0000 0000
0
000 0001
0010 1100
说明 : 其中 "
0
"是符号位,表示为正数
它的反码是:
0
000 0000 0000 0000
0
000 0001
0010 1100
说明 :
本身
它的
补
码是:
0
000 0000 0000 0000
0
000 0001
0010 1100
说明 :
本身
int
-
300
它的原码是:
1
000 0000 0000 0000
0
000 0001
0010 1100
说明 : 其中 "
1
"是符号位,表示为
负
数
它的反码是:
1
111 1111 1111 1111
1111 1110 1101 0011
说明 : 其中
符号位没有发生变化
它的
补
码是:
1
111 1111 1111 1111
1111 1110 1101 0
100
说明 :
补码是在反码的基础上加1
特例 :
补码
1
000 0000 表示 -128
补码 0000 0000 表示 0