欢迎使用CSDN-markdown编辑器

来源:互联网 发布:软件开发风险管理 编辑:程序博客网 时间:2024/05/16 05:07

原码,反码,补码以及机器表示

这里给出的只是这些知识点的一个总结,更为细致的解释在各位前辈的博客中都有详细的讲解。

原码:

原码是人们能够想到的数字在机器中最直观的表示。最高位为符号位,符号位为0表示正数,符号位为1表示负数。以八位为例(当然现在大部分机器int型都是32位),“3”的原码就是“0000 0011”,而“-3”的原码是“1000 0011”。

反码:

正数的反码是其本身,负数的反码事实上就是它的符号位不变,其他部分全部取反(0变为1,1变为0)。感觉反码的用处不大,只是为计算后面的补码搭了一个中间的桥梁罢了。

补码:

正数的补码依旧是它本身。负数的补码是它的反码加1。事实上,负数补码的计方法是:符号位不变,用模数(如果是8位的话那就是1000 0000)减去该负数的数值部分。比如说对于-3,它的补码就是1000 0000 - 000 0011 = 111 1101,最后前面再加上符号位1,就得到了-3的补码1111 1101。这个结果其实就是-3的反码加1。

机器表示

一个数实际上在计算机中都是用补码表示的,在进行位运算的时候,不能想当然的以为是原码。

0 0
原创粉丝点击