转载自 为什么byte取值-128~127??

java设计byte类型为1个字节,1个字节占8位,即8bit,这是常识。

另外,计算机系统中是用补码来存储的,首位为0表示正数,首位为1表示负数,所以有以下结论:

最大的补码用二进制表示为:01111111 = 127

最小的补码用二进制表示为:10000000 = -128

关于补码、原码、反码的计算原理可以百度。

Byte的源码:

/**

* A constant holding the minimum value a {@code byte} can

* have, -2<sup>7</sup>.

*/

public static final byte   MIN_VALUE = -128;

/**

* A constant holding the maximum value a {@code byte} can

* have, 2<sup>7</sup>-1.

*/

public static final byte   MAX_VALUE = 127;

7是最高位,总共8bit,可以看出byte占1个字节,即8/8=1。

Integer源码:

/**

* A constant holding the minimum value an {@code int} can

* have, -2<sup>31</sup>.

*/

public static final int   MIN_VALUE = 0x80000000;

/**

* A constant holding the maximum value an {@code int} can

* have, 2<sup>31</sup>-1.

*/

public static final int   MAX_VALUE = 0x7fffffff;

31是最高位,总共32bit,可以看出int占4个字节,即32/8=4。

其他Short、Long的设计原理也一样。

为什么byte取值-128~127??相关推荐

  1. Java Byte取值范围

    Java Byte 的取值范围大家都知道(-128 ~ 127),那么-128 和 127 这两个数是怎么计算的呢? #大学知识回顾: 概念:负数的补码是该 数 绝 对 值 的 原 码 按 位 取 反 ...

  2. java中 byte 取值范围_java中为什么byte的取值范围是-128到+127

    概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为"1"表示负数. 正数补码为其本身: 负数补码为其绝对值各位取反加1: ...

  3. java中 byte 取值范围_【二进制基础-java中byte的取值范围-推导过程】

    java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为"1"表示负数. 正数补码为其本身: 负数补码为其绝对值各位取反加1: 例如 ...

  4. java sbyte_JAVA与c#中byte取值范围的差异

    C#中分有符号类型的sbyte和无符号类型的byte Console.WriteLine("byte.min:{0},byte.max:{1},{2}byte", byte.Min ...

  5. JAVA byte取值范围表达理解

    我们知道JAVA中byte是一个字节来进行存储的,即8位二进制数,可以表示的数字有256个 但计算机中需要表示正数和负数,那么负数在计算机中怎么表示呢? 这里涉及一个新的概念就是 模: 模 即n个m进 ...

  6. Java的byte类型取值范围为什么是负128到正127呢

    Java的byte类型取值范围是-128~127为什么负数是128正数到127呢 概念:java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为&quo ...

  7. 类型的取值范围_Java基础类型取值范围,从基础的理解加深记忆

    Java有8种基础类型,但是你可能常常会忘记他们的取值范围.而这主要是由于你再依靠默记这些类型的取值范围,而不是从根本上理解. 举例 byte占1个字节,8给比特位,它的取值范围是:-128 ~ 12 ...

  8. Java基础:8种基本数据类型,取值范围和储存字节说明。

    Java中,一共有8种基本数据类型: 4种整数型:int,short,long,byte. 2种浮点型:float,double. 1种字符类型:char. 1种表示真值的类型:boolean. [S ...

  9. float和double取值范围

    最近在复习的时候发现基础太薄弱,对于float和double虽然了解所占字节数,但不知道他们的取值范围是多少,这对参加大厂笔试题时是十分不利的 1.八种数据类型的分类如下: 第一类:整型 byte s ...

最新文章

  1. 1.6-puppet测试证书
  2. 作为软件工程师,你必须知道的20个常识
  3. java 粒子系统_Java粒子系统(烟火篇)
  4. Python常用第三方库大盘点
  5. 郁金香商业辅助教程 2016 笔记 11~15
  6. sencha touch 入门学习资料大全
  7. 【移动开发】startForeground()让服务保持前台级别
  8. python---python基本算法的时间复杂度和空间复杂度
  9. 2021-06-27JSON介绍
  10. 关于中缀表达式的计算 和算符优先算法
  11. 计算机操作系统安装实验报告,操作系统实验报告1.doc
  12. linux shell脚本开发工具,技术|10个工具让你的 shell 脚本更强大
  13. linux生成一个ssh密钥,ssh密钥生成方式
  14. jQuery实现记住帐号密码功能
  15. 《通信原理与应用》小结
  16. NOIP2016普及组T3(海港)题解
  17. 前端css文本、单词、字母强制换行
  18. 华为 linux文件系统,华为EROFS文件系统是什么
  19. socket编程(在线自动聊天工具) --Python3
  20. 【JAVA编程】根据年龄, 来打印出当前年龄的人是哪个阶段

热门文章

  1. 从当前元素继续寻找_云漫圈 | 寻找无序数组的第k大元素
  2. [剑指offer]面试题7:用两个栈实现队列
  3. [蓝桥杯][算法提高VIP]五次方数-枚举
  4. 2017年第八届蓝桥杯国赛B组试题A-36进制-进制转换
  5. [蓝桥杯2017初赛]跳蚱蜢-map标记+bfs+环形数组
  6. equals, hashCode, toString方法重写,深入探究equals
  7. 监督学习和非监督学习
  8. kettle 空字符串 null问题解决
  9. P4055 [JSOI2009]游戏(二分图匹配+博弈)
  10. Educational Codeforces Round 17 E. Radio stations cdq分治 + 树状数组