如何求源码,反码,补码

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

源码怎么求

//原码就是早期用来表示数字的一种方式,用最高位表示符号位,最高位为'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

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

Original: https://www.cnblogs.com/A-yun/p/16166308.html
Author: 飞船,宇航员
Title: 如何求源码,反码,补码

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/685793/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球