浅谈java的byte数组的不同写法
(由于篇幅原因阐述的不够详细科学,不喜勿喷)。
经常看到java中对byte数组的不同定义,粗略整理的一下:
一个字节(byte)=8位(bit),“byte数组”里面全部是“byte”,即每一个byte都可以用二进制、十六进制、十进制来表示。
二进制:00010110----->0*2^8 + 0*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 = 22
16进制: 0x16 ------->1*16^1 + 6*16^0 = 22
十进制:22
所以下面三者等价:
byte [] aa = {00010110, 01010010, 10111000};
byte [] aa = {0x16, 0x52, 0xB8};
byte [] aa = {22, 82, 184};
在Eclipse断点调试的时候,看到的byte数组内容都是用十进制表示。有时会看到负数,因为字节数组中超过127的数都会以负数的形式显示。
我们知道java读取的方式只支持字节数组,而byte是8位,所以不能超过127,如果超过就会溢出,以负数的形式显示。
上一篇:java版实现2048游戏功能
栏 目:JAVA代码
本文标题:浅谈java的byte数组的不同写法
本文地址:http://www.codeinn.net/misctech/22128.html
阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机