博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原码、反码和补码
阅读量:5977 次
发布时间:2019-06-20

本文共 536 字,大约阅读时间需要 1 分钟。

hot3.png

原码、反码和补码都是整数的编码方法。

对于非负整数,三种编码的方式都是一样的。不同之处在于对于负数的编码。

原码是标志位置为1,其余位不变;

反码是标志位和其他所有位都取反;
补码是在反码的基础上+1;

示例如下:

        +18      -18

原码  00010010  10010010
反码  00010010  11101101
补码  00010010  11101110

不管是原码、反码、补码,都满足 -(-A)=A,这也是必然的。

原码
00010010 .......18
10010010 .......-18
00010010 .......-(-18)
反码
00010010 .......18
11101101 .......-18
00010010 .......-(-18)
补码
00010010 .......18
        11101101
       +00000001
11101110 .......-18
        00010001
       +00000001

00010010 .......-(-18)

反码和补码也有用作动词的时候,即取反/取补。此时取反就是按位取反,取补就是按位取反之后+1

转载于:https://my.oschina.net/liudiwu/blog/290045

你可能感兴趣的文章
Shell与ShellScript
查看>>
weblogic服务器保存图片失败解决办法
查看>>
php闭包函数简析
查看>>
Py中的类型注解【转载】
查看>>
BZOJ 4627: [BeiJing2016]回转寿司
查看>>
关于jenkins的安装及自动部署
查看>>
解决ORA-29857:表空间中存在域索引和/或次级对象 & ORA-01940:无法删除当前连接的用户问题 ...
查看>>
halcon算子翻译——dev_set_paint
查看>>
canvas之动态路径的绘制
查看>>
路由懒加载
查看>>
字符串转数组
查看>>
mysql 开发进阶篇系列 22 磁盘I/O问题(从linux操作系统上优化)
查看>>
Bellman-Ford 算法
查看>>
配置连接池druid
查看>>
foreach对集合的输出作用
查看>>
key可以重复的map集合:IdentityHashMap
查看>>
Data Member 的存取
查看>>
【转】Backbone标准例子——通讯录
查看>>
Markdown学习测试.md
查看>>
linux的~和/的区别
查看>>