Java byte[] 转C# byte[]

Posted davies

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java byte[] 转C# byte[]相关的知识,希望对你有一定的参考价值。

 

byte(C# 参考)

byte 关键字代表一种整型,该类型按下表所示存储值:

 

类型

范围

大小

.NET Framework 类型

byte

0 到 255

无符号 8 位整数

Byte

参考msdn: https://docs.microsoft.com/zh-cn/previous-versions/5bdb6693(v=vs.120)?redirectedfrom=MSDN

 

Java byte

也提供了一个byte数据类型,并且是基本类型。java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127,

介绍

byte,即字节,由8位的二进制组成。在Java中,byte类型的数据是8位带符号的二进制数。

在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在Java中,byte类型的取值范围也是[-128, 127]。

总结

c#的byte边界值为:0~255,

java的byte边界值为:-128~127。 当byte >=0  && byte <127时, 两边是相等的。 

所以:java的byte转成C#可识别的byte时,如果byte<0, (byte+ 256)  即为C#可识别的byte。( 列个方程:java +256= C# 则  java = C#-256。 若满足条件 java<0,java>=-128 ,即  ( C#-256 < 0 &&   C#-256  >= -128 )

     C#的byte转成java可识别的byte时,如果 byte >0 && byte<=127,可直接int转byte 。如果 byte >=128 则 javabyte = value - 256 。

 

示例:javabyte 转 C# byte 。

byte javabit = -112;

int bit = Convert.ToInt32(javabit );
byte bt = new byte();
if (bit < 0)

var st = (bit + 256).ToString();
bt = byte.Parse(st);

else

bt = byte.Parse(bit.ToString());

var st =  Encoding.GetEncoding("UTF-8").GetString(bt );

 

以上是关于Java byte[] 转C# byte[]的主要内容,如果未能解决你的问题,请参考以下文章

Java byte[] 转C# byte[]

java 中 byte[]FileInputStream 互相转换

java 中 byte[]FileInputStream 互相转换

java 中 byte[]FileInputStream 互相转换

c# byte 数组 转 short数组

c# vs2003 我有个byte[]数组,如何存入文件?