首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 中 byte 的取值范围为什么是 -128 到 +127

Java 中 byte 的取值范围为什么是 -128 到 +127

作者头像
一份执着✘
发布2018-06-04 16:53:24
2K0
发布2018-06-04 16:53:24
举报

首先要了解的概念是 Java 中用补码表示二进制数,补码的最高位代表符号位,最高位是 1 则表示为正数,最高位是 0 则表示为负数。

正数的补码是本身,负数的补码其绝对值的二进制位按位取反后 +1。

例如:

+60:二进制表示形式为 0011 1100,补码为本身,也就还是 0011 1100 -60:已知 +60 的二进制表现形式为 0011 1100,按位取反后是 1100 0011,在加 1,就是1100 0100。即表示 -60 的二进制表现形式 1100 0100。

回到正题,那么 byte 表示一个字节,一个字节是 8 位,最高位是符号位。

那么 8 位能表示的最大值就是 0111 1111,换算成十进制就是 127。

最小的负数就是1000 0000,(最大的负数是 1111 1111 是负数-1的补码),换算成十进制就是 -128, 1000 0000 是最小负数的补码表示形式,我们把补码计算步骤倒过来就即可。1000 0000 减 1 得 0111 1111 然后取反 1000 0000 因为负数的补码是其绝对值取反,即 1000 0000 为最小负数的绝对值,而 1000 0000 的十进制表示是 128,所以最小负数是 -128

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-08-212,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档