c# int与byte[]转换

网络上总结的方法汇总:

1: public byte[] intToByte(int i) {

byte[] abyte0 = new byte[4];

abyte0[0] = (byte) (0xff & i);

abyte0[1] = (byte) ((0xff00 & i) >> 8);

abyte0[2] = (byte) ((0xff0000 & i) >> 16);

abyte0[3] = (byte) ((0xff000000 & i) >> 24);

return abyte0;

}

public  static int bytesToInt(byte[] bytes) {

int addr = bytes[0] & 0xFF;

addr |= ((bytes[1] << 8) & 0xFF00);

addr |= ((bytes[2] << 16) & 0xFF0000);

addr |= ((bytes[3] << 24) & 0xFF000000);

return addr;

}

2: using system;

static void Main(string[] args)

{

byte[] bt=new byte[4];

bt[0] = 255;

bt[1] = 255;

int it=65535 ;

bt = BitConverter.GetBytes(it);

//Console.WriteLine(bt.ToString());

it = BitConverter.ToInt64(bt,0);

//Console.WriteLine(it);

//Console.ReadLine();

}

3:先转换为string再互换?这个没试验成功。

在用第一种方法时很方便;

第二种注意若byte[]维度大于4则会截断;若小于4,会出错,因为内部实现方法就是1:,找不到[3]当然会出错。

当然你可以继续测试,扩展为Int64,相应的byte[]维度需要达到8;同样短了出错,长了截断。



c# int与byte[]转换,布布扣,bubuko.com

时间: 2024-08-07 23:37:49

c# int与byte[]转换的相关文章

【转】java中byte数组与int类型的转换(两种方式)----不错

原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. 第一种方法: public static byte[] int2byte(int

byte[]数组和int之间的转换

unsigned char head[2];            //标识头    0x64,0xa4 unsigned char cmd;                //命令号,  0x03 unsigned char cmd_id;             //命令类型,0x00 unsigned char serial[6];          //设备序列号,MAC 地址 unsigned char cmd_len[2];         //命令长度,低位在前 unsigned 

int 转换 byte[] 或 byte[] 转换 int

byte[] bs = BitConverter.GetBytes(0x1234); Console.WriteLine(bs[0].ToString("X2") + " " + bs[1].ToString("X2")); // output: 34 12 低位在前,高位在后 byte[] bs2 = BitConverter.GetBytes(System.Net.IPAddress.HostToNetworkOrder((short)0x1

[Java] java byte数组与int,long,short,byte转换

public class DataTypeChangeHelper { /** * 将一个单字节的byte转换成32位的int * * @param b *            byte * @return convert result */ public static int unsignedByteToInt(byte b) { return (int) b & 0xFF; } /** * 将一个单字节的Byte转换成十六进制的数 * * @param b *            byt

java笔记--关于int和byte[]的转换

关于int和byte[]数组的转换 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3891747.html "谢谢-- 众所周知java有8种基本类型,分别是低级变量(byte,char,boolean,shot)和高级变量(int,long,double,float),低级变量会自动转化成高级变量,而高级变量则要用强制转换才能成为低级变量,可是在文件传输和网络传输当中,由于计算机都是以二进制来存储数据的,所以很多时候我们需要将要

byte数组与int,long,short,byte转换 (转载)

byte数组和short数组转换 public short bytesToShort(byte[] bytes) { return ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).getShort(); } public byte[] shortToBytes(short value) { return ByteBuffer.allocate(2).order(ByteOrder.LITTLE_ENDIAN).putShort(valu

java中byte数组与int类型的转换(两种方式)

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. 方法一 /** * int到byte[] * @param i * @return */ public static byte[] intToByteArray(int i) { byte[] resu

byte[]数组和int之间的转换(转)

本帖转自:h t t p://blog.csdn.net/sunnyfans/article/details/8286906 1.int与byte[]之间的转换(类似的byte short,long型) 1 /** 2 * 将int数值转换为占四个字节的byte数组,本方法适用于(低位在前,高位在后)的顺序. 和bytesToInt()配套使用 3 * @param value 4 * 要转换的int值 5 * @return byte数组 6 */ 7 public static byte[]

TCP通信实现对接硬件发送与接收十六进制数据 &amp; int与byte的转换原理 &amp; java中正负数的表示

今天收到的一份需求任务是对接硬件,TCP通信,并给出通信端口与数据包格式,如下: 1.首先编写了一个简单的十六进制转byte[]数组与byte[]转换16进制字符串的两个方法,如下: /** * 将十六进制的字符串转换成字节数组 * * @param hexString * @return */ public static byte[] hexStrToByteArrs(String hexString) { if (StringUtils.isEmpty(hexString)) { retur