c++是兼容c语言的,因此c语言的编程对c++也适用,
int型的变量变成字节型(Byte),可以使用强制转换,使用方法如下:
int a=120;
a=(char)a;
那么a就会转化成了字节型(Byte型)
值得注意的是,int是双字节型的数,变成单字节的时候,高字节的数会自动省去。一个byte是8位,一个int是16位,int转换成byte是将前(左)8位舍弃,留后8位。88+68=156,转换成int型2进制为0000000010011100,再强转成byte就是10011100,因为最高位为符号位,也就是表示正负的位,所以这里的1代表负数,剩下的按照原码、补码的规则换算回来就是100,所以是-100因为在java中,int类型的占4个字节,而byte占1个字节,所以int类型转化为byte类型时会出现位丢失情况,即将int的低8位作为byte类型的值。int型变量的值为257,对应的二进制是100000001,后8位是00000001,第一个0表示符号位,表示正数,所以变量x的值为1。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 < alength; j++) {
Systemoutprintln(a[j]);
}
}
同时赞成楼上说的,需要注意
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)