原码 补码 反码 移码

目录

原码

反码

补码

移码

转换


原码 补码 反码

原码

  • 0和1组成
  • 正负用0和1表示(添加在最前面)

真值转原码

  1. 转化符号位
  2. 数值位十进制转二进制

对于十进制数

  • 233(正数)

正数->符号位为0

233——>011101001(原码)

  • -233(负数)

负数—>符号位为1

233——>111101001(原码)

  • 字长为8(表示范围)
  • -127~127

一位为符号位置 所以能表示数字的只有7位

  • 0 (两种形式)
  • +0——>0 0000000
  • -0——>1 0000000

反码

对于正数

  • 反码=原码

对于负数

  1. 转为原码
  2. 符号位保持为
  3. 数值位取反

-1101001(真值)

转为原码——>11101001

数值位取反(符号位不变)——>10010110(反码)

  • 对于数字0
  • 正0(+0)——>0 0000000
  • 负0(-0)——> 1 1111111

-0

原码 10000000

数值位取反

补码

对于正数

补码=原码

对于负数

补码=反码+1

  • 转化为反码后
  • 先+1在取负号

表示范围

字长为8位

-128~+127

  • 多一个负值-128
  • 原本表示-0的 10000000 用来表示-128

0只有一种+0的形式


二进制(8位字长)

无符号

原码

反码

补码(取反码再+1)

00000000

0

0

0

0

10000000

128

-0

-127

-128

11111111

255

-127

-0

-1

移码

  • 通常用来表示浮点数阶码

阶码通常位整数

X移=2n-1+X (-2n-1<X<2n-1)(n为阶码的位数)

  • 移动的2n-1要转换为二进制

对于正数

  • 进行二进制加法运算

X=+10101 阶码位数为6

25+10101=110101

100000

+ 10101

110101(移码)

  • 原码符号位变取反 数值为不变
    • X=+10101 原码为010101
    • 符号位取反 ——>110101(移码)

对于负数

  • 进行二进制减法运算

X=-10101 阶码的位数为6

25-10101=001011

100000

- 10101

001011

  • 对原码符号位和数值位一起取反

X=-10101 原码 110101

符号位 和数值位取反 --->001010(移码)

范围

-128~+127

  • 0 只有一个移码 10000000

转换

补码——>原码

[[X]]=X对补码再进行一次取反 得到原码

X补=11101100

再取补码

10010100

[X]——>[-X]

  • 同符号位一起取反(改变正负号)
  • 末位+1

X补=11101100

  • 同符号位一起取反

00010011

  • +1

-X补=00010100

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值