java 实现取int型的第二个字节的数
取int型的第二个字节的数
无意中看到某个题目,前提条件,一个byte最多表示256位,因为其是由8个位表示 ,八个1 最多表示256位。
一个int由32位组成,所以是4个byte表示。题目要求是给定一个int数字,问第二个byte是多少。刚开始不会写。
再后来复习nio时,突然想到这题。
1.首先创建 Bytebuffer
其内部是由byte组成的数组。因为我们保存一个int 只需要创建一个大小为4byte的即可。下面看代码。
public static void main(String[] args) throws IOException { ByteBuffer bb=ByteBuffer.allocate(4); //创建大小为4的byteBuffer bb.asIntBuffer().put(5566); //以int视图将任意int数存进去 System.out.println(Arrays.toString(bb.array())); //打印出改bytebuffer,其中想要第几个byte就取出就好了 }
结果
[0, 0, 21, -66]
2.通过位运算计算
首先
int a=5566;
a=a>>8;
a=a&0xff;
得到的a就是 第二位的值
3.附一个int转byte数组
private static byte[] intToByte(int in){ byte [] b=new byte[4]; b[3]= (byte) (in&0xff); b[2]= (byte) (in>>8 &0xff); b[1]= (byte) (in>>16 &0xff); b[0]= (byte) (in>>24 &0xff); return b; }
int的取值范围
int型的数据字节长度是4,一共是32位,第一位用于表示正负号,其他位的数字组成它所代表的值,
例如7的二进制表示形式为
00000000 00000000 00000000 00000111
当表示负数的时候,则采用的是补码的形式,第一位是1,
例如-7的二进制表示为
11111111 11111111 11111111 11111001
int型数据的取值范围:-2^31—-2^31-1
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot+Thymeleaf+ECharts实现大数据可视化(基础篇)
本文主要介绍了SpringBoot+Thymeleaf+ECharts实现大数据可视化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>2022-06-06Java 必知必会的 URL 和 URLConnection使用
这篇文章主要介绍了Java 必知必会的 URL 和 URLConnection使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-10-10
最新评论