c#与java中byte字节的区别及转换方法

原文:c#与java中byte字节的区别及转换方法
在java中  byte的范围在 [-128,127]

在C#中  byte的范围在 [0,255]

所以 java程序与C#程序 进行数据传输的时候
要先把java的byte数组转换成在[0,255]范围内的int型数组a[];再把a[]进行加密得到字符串str,
把字符串传到web服务上。

转换方法:

int data[] = new
int[bytes.length];

for(int i=0;i

 
 data[i] = bytes[i] & 0xff;

}

时间: 2024-09-20 00:22:38

c#与java中byte字节的区别及转换方法的相关文章

java中byte数组与十六进制字符串相互转换

最近在做加密算法的研究和使用,经常会用到byte数组和十六进制字符串的转换.之前对于此类问题我一般都是使用BigInteger这个类转换一下算了,这样为了看输出不是乱码.这其实都不是根本上的解决方案. 最简单的转换方法: /** * @see 将byte[]数组转换为String字符串 * @author Herman.Xiong * @date 2014年5月5日 17:15:42 * @param data byte数组 * @return String 转换后的字符串 */ public

java中”==”和”Equal”的区别

对于一些基本数据类型,int,long,bool,还有char!,"=="都是表示值相等的意思,没有equal方法. equal方法是object对象里面的方法,java中String不是基本数据类型,而是一个类,它们都是继承object类,还有Integer和int的区别也是Integer是一个类! 在object类中,equal方法与"=="是等同的,"=="不是表示值相等,而是比较对象的地址是否相等!Integer和String都重写了(没

字符-java 中byte数组转换问题,求思路

问题描述 java 中byte数组转换问题,求思路 现在做的项目有一个byte数组转换的问题,思考很久没有思路,求各路大神给点意见. 需求 :将一个byte数组中的每个元素拆分成两个byte.分别保存前一个byte中的16进制两位的内容的ascii码. 事例 : byte[] a = {0x24,0xBD}; byte[] b = new byte[4]; 想得到的结果: b[0] == 0x32; b[1] == 0x34; b[2] == 0x42; b[3] == 0x44;

JAVA中byte 、short为什么能赋常量的值,却不能赋变量的值

问题描述 JAVA中byte .short为什么能赋常量的值,却不能赋变量的值 byte b1= 1; byte b2 =2; byte b3 =b1+b2; 这种编译为什么会报错,求指导? 解决方案 道理很简单,两个byte相加的结果byte未必能装下.比如byte b1 = 129; byte b2 = 129; 你说 byte b = b1 + b2 = ? 解决方案二: b1和b2相加的结果值默认是int类型的,改为这样就正确了;byte b3 = (byte)(b1+b2); 解决方案

java中的字节输入流的无参read方法,每次读到的是一个字节,还是一个基本数据的字节值?

问题描述 java中的字节输入流的无参read方法,每次读到的是一个字节,还是一个基本数据的字节值? FileInputStream 的无参read()方法,每次读到的是一个字节,那他返回给的int变量的是一个字节的int表现形式,还是一个基本数据(如char字符数据)的字节值的int表现形式?如果是返回的一个字节,那这个字节转化成的int值,最多只能取到2的8次方即255个,单个字节是无法表示一个字符的,如果原文件中有汉子,系统又是怎么样把一个字节的数据转换成汉子呢?本人新手,这块不是很理解,

字符串-java中String str1…的区别,详细见内容

问题描述 java中String str1-的区别,详细见内容 String str1,str2; str1 = "we are friends"; str2 = "we are friends"; 和 String str1 = "we are friends"; String str2 = "we are friends"; 在内存上的区别是什么? 是否有区别? 解决方案 没有区别,他们指向同一个对象 解决方案二: 就最后

java类的问题-关于java中的方法的区别

问题描述 关于java中的方法的区别 我是java菜鸟,想问一个问题关于 public static void main (String [] args){} 和static public void main (String [] args){} 的区别是什么?在jvm中是如何执行的? 解决方案 应该是没区别的吧 你要看区别 先分别编译后 后看看编译后的内容的区别吧 很多代码经过编译后效果是一样的

string-关于java中byte 超出表示范围了

问题描述 关于java中byte 超出表示范围了 String s = Integer.toHexString(number); byte b = Byte.parseByte(s,16); 但是java中byte的范围不是-128~127吗, 请问怎么表示比如128 解决方案 解决方案二: 你可以试下,如果number大于127的话,就会报Value out of range(数值超出范围)的错误. 如果估计数据可能超出-128~127这个范围的话,你就需要考虑用int b 而不是byte b

基于java中byte数组与int类型的转换(两种方法)_java

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[0] = (byte) (res & 0xf