JAVA有关位运算的全套梳理

Posted 胖虎1993

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA有关位运算的全套梳理相关的知识,希望对你有一定的参考价值。

一、在计算机中数据是如何进行计算的?

1.1:java中的byte型数据取值范围

我们最开始学习java的时候知道,byte类型的数据占了8个bit位,每个位上或0或1,左边第一位表示符号位,符号位如果为1表示负数,为0则表示正数,因此要推算byte的取值范围,只需要让数值位每一位上都等于1即可。

我们来用我们的常规思维来分析下byte类型的取值范围:

图1

如果按照这种思路来推算,七个1的二进制数转换为十进制是127,算上符号位,取值范围应为:-127~+127,但事实上我们知道,byte的取值范围是-128~127,这里先打个问号,接着往下看。

现在让我们计算下byte类型的7加上byte类型的-2是多少:

图2

诶?跟我们预想的不一样,因为我们是知道7和-2的和应该是5才对,结果应该表示为:00000101,但事实上通过图2的结果来看确实跟预想的不一样,所以计算机在做计算的时候,肯定不是表面上的符号位+数值位的方式进行的计算的。

1.2:原码,反码,补码

我们先来看下定义:

以上是关于JAVA有关位运算的全套梳理的主要内容,如果未能解决你的问题,请参考以下文章

java提高(17)---Java 位运算符

位运算应用:保存多状态标识应用

位运算应用:保存多状态标识应用

位运算应用:保存多状态标识应用

位运算应用:保存多状态标识应用

实践出真知!java位运算符号