最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

Java原码反码补码的理解与练习

Java基础 太平洋学习网 浏览 评论

很多人不知道计算机中的原码反码补码是什么?为什么要讲解Java的原码,反码,补码的知识呢?因为计算机在操作的时候,都是采用数据对应的二进制的补码来进行计算的,所以大家有必要了解这方面的知识(所有的编程语言的原码反码补码都一样)。

javacode.jpg


什么是符号位?

在了解什么是原码反码补码之前,先来了解什么是符号位?

符号位就是在二进制中用来区分正数和负数的,我们都知道一个字节中有8个二进制,其中正数的最高位为0,负数的最高位为1,余下的7个二进制则为数值位,如+7与-7表示的二进制分别是:

// 正7的二进制

00000111

// 负7的二进制

10000111


什么是原码?

计算机的原码其实就是数据的二进制,正数的原码最高位为0,负数的原码最高位为1,其它的7位二进制数据则为数值位,如图是+7与-7的原码表示方式:

image.png


什么是反码?

反码有正数与负数的区分

正数的反码与原码一样,不做任何改变;

负数的反码与原码符号位(即从右到左边数第8个二进制)相同,数值位取反,就是1变成0,0变成1。

如图所示就是将上图+7与-7的原码变成了反码的表达方式:

image.png


什么是补码?

正数的补码与原码一样,不做任何改变。

负数的补码则是在上面反码的基础上加1,变成一个新的二进制。

如图所示,就是将上图+7与-7的反码变长了现在的补码:

image.png

总结:

正数的原码反码补码的二进制完全一样,符号位也不会变化。

负数的反码是在原码二进制的基础上数值位(从左开始数,后7位数字)取反即可;而补码则是又在反码基础上加1,所以符号位可能会由1变成0,


下面是A,B两道关于原码,反码,补码转换的练习题,如图所示,可以自己慢慢感受它们之间的区别,B字母表示的是二进制的意思

image.png

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/java/968.html

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论