publicclassByteToIntConverter{publicstaticvoidmain(String[]args){// 定义两个byte变量bytebyte1=0b00000001;// 第一个字节,十进制值为1bytebyte2=0b00000010;// 第二个字节,十进制值为2// 使用位操作组合这两个byteintresult=(byte1&0xFF)|((byte2&0xFF)<<8);// 输出结果System.out.println("The...
实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。 范例:使用字节流不关闭执行 Java代码 package org.lxh.demo12.byteiode...
一、Int2Byte byte[] bytes =newbyte[4];for(inti = 0; i < 4; i++) { bytes[i]= (byte)(integer >>> (i * 8)); } 二、 Byte2Int inti= (rno[0]<<24)&0xff000000|(rno[1]<<16)&0x00ff0000|(rno[2]<< 8)&0x0000ff00|(rno[3]<< 0)&0x000000ff; 或 intx = ((b[0] ...
1,int类型占4个字节,而byte类型只占1个字节 2,原码:最高位为符号位,其余位用来表示数值大小 2的原码:00000010 -2的原码:10000010 3,反码:正数的反码与其原码相同;负数的反码符号位保持不变,其余位按位取反 2的反码:00000010 -2的反码:11111101 4,补码:正数的补码与其原码相同;负数的补码为该负数的反码+1 2...
public static byte[] intToByteArray(int a) { byte[] ret = new byte[4]; ret[0] = (byte) (a & 0xFF); ret[1] = (byte) ((a >> 8) & 0xFF); ret[2] = (byte) ((a >> 16) & 0xFF); ret[3] = (byte) ((a >> 24) & 0xFF); ...
/** * int转字节数组 大端模式 */ public static byte[] intToByteArrayBigEndian(int x) { byte[] bytes = new byte[4]; bytes[0] = (byte) (x >> 24); bytes[1] = (byte) (x >> 16); bytes[2] = (byte) (x >> 8); bytes[3] = (byte) x; return bytes; } /** * int转...
byte[] 转 int (比较常见) 一个两位的byteArr[],高位在前,低位在后 比如:一个int 转成 4 个byte(高位在前,低位在后) 原理:一个int 占4个字节,即 4 个byte publicstaticbyte[]intToByteArray(intnum){byte[]result=newbyte[4];result[0]=(byte)((num>>24)&0xFF);result[1]=(byte)((num>>...
所以不同的类型占用的字节大小不同,取值范围也不一样。另外我们还知道,一个变量可以赋值给另一个变量,当然前提是他们的类型差不多。那么此时可能就存在一个问题:如果把byte变量赋值给int变量行不行?反之,把int变量赋值给byte行不行?引用类型之间也能互相转换吗?如果可以的话,会不会出现什么问题?2. 方式 ...
-1的int补码(32位)是111111111111111111111111,如果将byte转换为int,那么对应的十六进制数是0xffff。 结果不正确(对于负数而言)。 所以为了计算结果的正确性,我们就要对字节进行&0xff操作。 算法实现 publicclassUtilities{publicstaticbyte[]int2Bytes(intnum){byte[]byteNum=newbyte[4];for(intix=0;ix<4;++ix...