`
SnowLotus
  • 浏览: 73908 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

整型int和字节数组byte相互转换

    博客分类:
  • J2SE
J# 
阅读更多
public class Test {
	   public static void main(String args[] ) {
	        int i = 212123;
	        byte[] b = toByteArray(i, 4);   //整型到字节,

	       System.out.println( "212123 bin: " + Integer.toBinaryString(212123));//212123的二进制表示
	       System.out.println( "212123 hex: " + Integer.toHexString(212123));  //212123的十六进制表示  

	        for(int j=0;j<4;j++){
	              System.out.println("b["+j+"]="+b[j]);//从低位到高位输出,java的byte范围是-128到127
	        }
	       
	        int k=toInt(b);//字节到整型,转换回来
	        System.out.println("byte to int:"+k); 
	      
	    }

	    
	    // 将iSource转为长度为iArrayLen的byte数组,字节数组的低位是整型的低字节位
	    public static byte[] toByteArray(int iSource, int iArrayLen) {
	        byte[] bLocalArr = new byte[iArrayLen];
	        for ( int i = 0; (i < 4) && (i < iArrayLen); i++) {
	            bLocalArr[i] = (byte)( iSource>>8*i & 0xFF );
	          
	        }
	        return bLocalArr;
	    }   

	     // 将byte数组bRefArr转为一个整数,字节数组的低位是整型的低字节位
	    public static int toInt(byte[] bRefArr) {
	        int iOutcome = 0;
	        byte bLoop;
	        
	        for ( int i =0; i<4 ; i++) {
	            bLoop = bRefArr[i];
	            iOutcome+= (bLoop & 0xFF) << (8 * i);
	          
	        }  
	        
	        return iOutcome;
	    }    

}



输出:
212123 bin: 110011110010011011
212123 hex: 33c9b
b[0]=-101
b[1]=60
b[2]=3
b[3]=0
byte to int:212123


注:
上面的toInt()也可以这样定义
public static int toInt(byte[] bRefArr) {
    int iOutcome = 0;
    byte bLoop;
    for ( int i =0; i<4 ; i++) {
	bLoop = bRefArr[i];
	iOutcome = iOutcome | (bLoop & 0xFF) << (8 * i);          
    }  
    return iOutcome;
}
分享到:
评论

相关推荐

    int类型和byte数组之间的转换

    写一个方法,将int类型转换为字节数组,输入任意int类型整型,输出字节数组;写第二个方法,输入字节数组,输出对应int类型数据。

    LabVIEW,字节数组至数值转换

    LabVIEW程序,功能:将4字节的unsigned char输入组合成1个32-bit int值,若输入字节数不等于4则报错。

    java数据类型转byte数组

    ip地址转4字节byte,char转2字节byte,byte数组转char,int整数转换为4字节的byte数组,byte数组转换为int整数,double类型转8字节数组,8位数组转double,long整数转换为8字节的byte数组,short整数转换为2字节的...

    C# byte转为有符号整数实例

    C#开发,收到下位机串口数据(温度信息),可能是正数也可能是负数,如何转换?...补充知识:c# byte数组转换 8位有符号整数 16位有符号整数 32位有符号整数 byte数组 byte[] aa = new byte[] { 0xF8

    Java整型数与网络字节序byte[]数组转换关系详解

    主要介绍了Java整型数与网络字节序byte[]数组转换关系,结合实例形式归纳整理了java整型数和网络字节序的byte[]之间转换的各种情况,需要的朋友可以参考下

    C语言如何将int转byte类型

    将整型值类型转换为字节类型将int类型转换为byte类型

    C++指针数组、数组指针、数组名及二维数组技巧汇总

    比第一个元素地址a(或者&a[0])超出了一个整型指针的大小,在这里是4个字节(byte) cout &lt;&lt; a &lt;&lt; endl;//会输出数组第一个元素地址。 2.取址符号&. &a是数组的地址,注意是数组的地址,表示数组这个

    16进制与10进制相互转换,整型,双整型,浮点数等

    16进制与10进制数据转换工具,主要用于程序读写PLC,单片机等数据时读取的16进制数据转换成10进制的数,解决初学者的疑惑,数据在单片机或PLC中存储时是以bit、字节为单元存储的,不管是整型数还是浮点数,最终都是...

    c# 加密和解密相关代码

    public byte[] ComputeHash(byte[] buffer,int offset,int count) ComputeHash 方法中的参数及说明如表19.1 所示。 表19.1 ComputeHash方法中的参数及说明 参 数 说 明 buffer 要计算其哈希代码的输入 offset 字节...

    Java程序设计基础:基本数据类型.pptx

    (byte、short、int、long) (float、double) 数组 [ ] (boolean) 基本数据类型 整型 类型名称 占用存储空间 取值范围 byte 1字节(8位) -27~-27 -1即-128~127 short 2字节(16位) -215~215 -1 int 4字节(32位) -...

    C/C++与Java各数据类型所占字节数的详细比较

    Turbo C: [signed] int 2Byte//有符号数,-32768~32767 unsigned int 2Byte //无符号数,只能表示整数0~65535  [signed] short [int] 2Byte  unsigned short [int] 2 Byte  long [int] 4 Byte  unsigned long ...

    Java的8大基本数据类型.pdf

    Java的 的8⼤基本数据类型 ⼤基本数据类型 Java8⼤基本数据类型 ⼤基本数据类型 byte(字节型)、short(短整型)、int (整型) 、long(长整型) float(单精度浮点型)、double(双精度浮点型)、boolean(布尔型)、...

    java课后练习题答案

    Java中定点类型都是有符号数 ,包括byte(字节型) 、short(短整型) 、int(整型)和long(长整型),分别占据1、2、4、8个字节。Java中各种数据类型占用固定的内存长度,与具体的硬件平台无关,体现了Java的跨...

    标准MFC WinSock ActiveX控件开发实例(II)高级篇

    在VC中,通过sizeof()我们可以看到int和long的长度都是4,而char的长度为1,因此,如果传入的是长整型或者整型数组,我将它转换成4个char,然后发送出去,转换方法可以通过移位处理,如下 : //long转换为4个char ...

    不用string.h库函数的,方便易用的字符串处理函数,减少库带来代码量

    //将字符串str转换为32位整型,其正数的最值为0x7FFFFFFF,负数的最小值为0x80000000,考虑数字会溢出的情况 void LettersChange(unsigned char*str, unsigned char font);//大小写字母变成大小写字母 signed int st_...

    python文件读写代码实例

    那么自然而然的想到,读取两个字节(bytes)的数据(也就是16bit),然后把它转化成int16的整型(即十进制整型)。数据就变得可以处理了。 先放一个不同位数的整型数据范围吧,经常会用的到。 Int8 //等于byte,-128 127 ...

    java面试题-附答案

    byte属于Java中的整型,长度为1字节8bit,取值10000000(-128)到 01111111(127),变量初始化默认值为0,包装类Byte 2.short short属于Java中的整型,长度为2字节16bit,取值10000000 00000000(-32768)到 ...

    2.Java基础语法.ppt

    整形 int 4个字节(32位) +-2(的31次方)约21亿 0 长整形 long 8个字节(64位) -2(的63次方)—2(的63次方)-1 0 浮点型: 单精度浮点型 float 4个字节(32位) 1.4013E-45—3.4028E+38 0.0F 双精度浮点型 ...

    c# 数据类型占用的字节数介绍

    bool -&gt; System.Boolean (布尔型,其值为 true 或者 false) byte -&gt; System.Byte (字节型,占 1 字节,...short -&gt; System.Int16 (短整型,占 2 字节,表示 16 位整数,范围 -32,768 ~ 32,767) ushort -&gt; System.UInt1

    C和C++中的基本数据类型的大小及表示范围详解

    本文研究的主要问题时关于C和C++中的基本数据类型int、long、long long、float、double、char、string的大小及表示范围,具体介绍如下。 一、基本类型的大小及范围的总结(以下所讲都是默认在32位操作系统下): ...

Global site tag (gtag.js) - Google Analytics