byte转16进制展示,为什么使用&0xff

本文探讨了Java中byte类型的表示范围,详细解释了byte的最大值和最小值的二进制表示。接着,讨论了byte转16进制展示时,为何使用`&0xff`操作,以及该操作如何影响字符串长度。最后,对比了ByteBuffer中`getInt()`方法和byte直接转型为int的区别,涉及到了补码、大小端模式以及位运算。
摘要由CSDN通过智能技术生成

说明:本篇文章中,如无特殊说明,二进制数字均为补码

byte的表示范围

  1. byte由8位二进制数字展示。
  2. 计算机系统中,数值以补码的形式来存储
    2.1 补码方便计算机中数值加减运算
    2.2 +0的补码与-0的补码一致,均为:0000 0000

最大值 0111 1111

  1. 第一位为符号位,后七位是数字
  2. 正数的反码、补码都是本身
  3. 最大值首位为0(正数,没得选),后七位全是1。即0111 1111

最小值 1000 0000

  1. 负数的补码是原码的反码 + 1
  2. 最小值符号位为1,容易推导到的负数的补码是从1000 00011111 1111(-127到-1)。
  3. 额外说明,补码1000 0000表示-128(可记忆为-127减1),且byte的-128无补码,无反码
  • byte的表示范围是-128127(1000 0000 到 0111 1111)

byte的16进制展示


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值