在JAVA中如何把int型转换成byte型, 比如int a=135 转换成byte型,求,详细解答步骤 谢谢
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 65535;
byte[] a = new 氏乱byte[4];
逗伍 a[0] = (byte) (0xff i);
a[1] = (byte) ((0xff00 i) 8);
a[2] = (byte) ((0xff0000 i) 16);
a[3] = (byte) ((0xff000000 i) 24);
//a 为转换后的byte
for (int j = 0; j a.length; j++) {
System.out.println(a[j]);
}
}
同时赞成楼上说歼指档的,需要注意
Java:关于byte转16进制的& 0xFF,我的理解正确吗?
/* *
* Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)
*来转换成16进制字符串。
* @param src byte[] data
* @return hex string
*/
public static String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder(“”);
颂厅 if (src == null || src.length = 0) { 吵樱和
return null;
}
for (int i = 0; i src.length; i++) {
int v = src[i] 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() 2) {
stringBuilder.append(0);
升盯 }
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
> 8 & 0xff ) 在线等!’>java 谁帮我看下 下面这个方法,是什么原理?主要是 (n >> 8 & 0xff ) 在线等!
java里int是32位即4个byte,所以要把弊陆int转成byte数组要用长度4的byte[]接收,
b[0] = (byte) (n 0xff); 表示接收int末8位数据
b[1] = (byte) (n 8 0xff); 先将9-16位的数据右移到末8位,再与11111111做与运算过滤掉高位,仍然保留末宽卜歼8位数据,这是为了获取int n的9-16位的byte值。
后面的原理同上,都是为了将慎冲要取值的位数先移动到末8位,再取值