当前位置 : 主页 > 编程语言 > 其它开发 >

如何求源码,反码,补码

来源:互联网 收集:自由互联 发布时间:2022-05-30
一文搞懂如何计算源码,反码,补码 最近有朋友问起这些,于是就简单的讲一下吧(只讲求法,没有包含真正的意义)。 ​ 源码怎么求 //原码就是早期用来表示数字的一种方式,用最高
一文搞懂如何计算源码,反码,补码

最近有朋友问起这些,于是就简单的讲一下吧(只讲求法,没有包含真正的意义)。

源码怎么求
//原码就是早期用来表示数字的一种方式,用最高位表示符号位,最高位为‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值

正数的源码就是本身的二进制表示,负数的源码就是它的绝对值的源码,然后把最高位(符号位) 置1

举例说明:

int类型的 5 的二进制表示为 101B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得源码为:

00000000 00000000 00000000 00000101

int类型的 -5 的源码就是5的源码,然后给最高位换成‘1’

10000000 00000000 00000000 00000101  

    

反码怎么求 ?
//正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反

举例说明:

int类型的 5 的反码是

00000000 00000000 00000000 00000101

int类型的 -5 的反码是

11111111 11111111 11111111 11111010

除开符号位 所有位 取反

补码怎么求?
//正数的补码与原码相同,负数的补码为其原码除符号位外所有位取反,然后最低位加1(也就是反码加1)

举例说明:

int类型的 5 的补码是:

00000000 00000000 00000000 00000101

int类型的 -5 的补码是

11111111 11111111 11111111 11111011

就是其反码加1

好了最后问问小伙伴 -107的源码,反码,补码你会求了吗?

//源码
1000 0000 0110 1011
//反码
1111 1111 1001 0100
//补码
1111 1111 1001 0101

    

本文只是简单的讲了一下源码、反码、补码的求法,至于它们的深层意义同学们可以参考这个博客
https://www.imooc.com/article/16813?block_id=tuijian_wz

写在最后

本人才学尚浅,发博客的主要目的是为记录自己的学习过程,帮助自己更好的巩固基础,也希望这些小的知识点可以为小伙伴们带来一点帮助,如果有说的不对的地方,欢迎大家在评论区指出。最后希望小伙伴们可以点个推荐,多多支持,感谢。

上一篇:ASP.NET Core实现JWT授权与认证(1.理论篇)
下一篇:没有了
网友评论