java数据类型byte,java定义byte

  java数据类型byte,java定义byte

  Java还提供了字节数据类型,这是基本类型。Java字节被当作最小的数,所以它的取值范围被定义为-128~127,即有符号字节。下面这篇文章主要介绍java中关于字节类型的相关信息,有需要的朋友可以参考一下。

  如何解决写爬虫IP受阻的问题?立即使用。

  介绍

  字节,或称字节,由8位二进制组成。在Java中,字节类型数据是8位有符号二进制数。

  在计算机中,8位有符号二进制数的范围是[-128,127],所以在Java中,字节类型的范围也是[-128,127]。

  取值范围分析

  我一直在想为什么不是-128到128?我今天分析了这个问题。

  首先,我们要明白一件事,那就是操作规则:

  正数的最高位都是 0 ,正数的值就是二进制表示的值。

  负数的最高位都是 1 ,负数的值是 取反后加一 然后加个负号得到得值。

  让我们用8位二进制来说明这个规则:

  比如:00000001。最高位是0,是正数,所以表示十进制1。

  再比如:1000001。最高位为1,为负。价值是什么?求逆得到0111110加1得到011111,那么值就是-127。

  为了理解这个运算规则,我们正式开始说byte,它正好是一个8位的二进制数。Short是16位int是32位long是64位。

  不难理解,byte的最大正数是0111111(最高位必须是0),也就是127。

  那么你可能会认为byte的最小负数是11111111吧?想是吧。

  大错特错。我们来看看二进制数1111111代表多少。

  根据上面的提示,我们知道这是一个负数。它的值先求反,然后加1。

  11111111反过来得到:0000000。加1得到0000001。最终值为-1。

  这是最大的负数。你认为最小的负数是10,000,000吗?

  我们来算一下倒数:0111111加1得到1000000最后得到-128。

  27是0111111,但是-128是1000000,这说明了一个奇怪的事情。

  仔细看看这两个二进制数。前者加1是后者吗?没错。

  你可以编译一个小程序来实验:

  字节a=127

  a=1;

  system . out . println(a);结果正好是-128。

  由此可见,二进制是从0000000到0111111到100000到111111。

  即从0到127到-128到-1的十进制数。

  接下来,我们用一段代码来更深刻地理解byte:

  公共A类{

  公共静态void main(String[] args) {

  int b=456

  字节测试=(字节)b;

  System.out.println(测试);

  }

  }上面的代码,最后会输出-56。原因如下:

  46的二进制表示是111001000。由于int是32位二进制,所以在计算机中,实际上是000000000 … 111001000。当int转换成byte时,那么计算机只会保留后8位,即11001000。

  那么11001000的最高位是1,也就是说它是一个负数,负数在计算机里都是以补码的形式存储的,所以我们计算出11001000的原码是0011000,也就是56,所以11001000就是-56,所以test的最终值是-56。

  本文来自java入门专栏,欢迎学习!以上是java中字节类型的详细介绍。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: