为了账号安全,请及时绑定邮箱和手机立即绑定

反码是怎么算的

标签:
大数据 算法

算反码的方法如下:

1、首先看正数,先将十进制的正数转换成二进制形式。

2、之后可以根据原码直接写出补码和反码,因为正数的补码和反码就等于原码。

3、负数情况不一样,将一个十进制负数转换成原码。

4、再将原码转换成反码,注意前四位符号位不变,后四位数字位全部取反。

5、最后在补码的基础上+1,就得到补码。

  • https://img2.sycdn.imooc.com/63a95d4400015b8406000392.jpg


反码

反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。在计算机内,定点数有3种表示法:原码、反码和补码。

所谓原码就是二进制定点表示法,即最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小。

反码表示法规定:

正数的反码与其原码相同。

负数的反码是对正数逐位取反,符号位保持为1。

对于二进制原码10010求反码:

((10010)原)反=对正数(00010)原含符号位取反= 反码11101 (10010,1为符号码,故为负)

(11101) 二进制= -2 十进制。


对于八进制:

举例 某linux平台设置了默认的目录权限为755(rwxr-xr-x),八进制表示为0755,那么,umask是权限位755的反码,计算得到umask为0022的过程如下:

原码0755=反码 0022 (逐位解释:0为符号位,0为7-7,2为7-5,2为7-5)。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

原码:  最高位为符号位,正数为0,负数为1.非符号位为二进制的绝对值表示。

反码:正数反码与原码一致,负数反码就是原码按位取反,除去符号位不变,保持为1。

补码:正数补码与原码一致,负数补码是反码+1,即补码=反码+1. 也可以计算为:以原码进行操作,符号位不变,保持为1,其余位取反,直到碰到最后一个1为止,那个1及以后的数字不再取反。又:原码的第一个1和最后一个1之间的数字,全部取反。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消