Ⅰ java 变量数据类型转换byte, short, char, int, long, float, double
byte b1 = 3; byte b2 = 4; byte b = b1-b2这个之所以报错,是因为在进行b1-b2的运算时,会自动将b1和b2提升成int型,所以最后结果也是int型,需要进行强制装换,才能赋值给byte型变量
默认排序你似乎有点搞错,应该是byte,char,short,int,long,float,double
Ⅱ 【求大神】在java中关于char与byte short 的常量自动转换问题
在Java中,char是16bit长的无符号整数,因此范围是:0~65535,而short则是16bit长的带符号整数,范围是-32768~32767。 所以,两者虽然字长相同,但意义却不一样(表示范围并不完全重合或包含),因此不管是char转换成short,还是short转换成char,都可能“丢失精度”,因此必须强制转换。虽然,这里的“丢失精度”跟从int到short的丢失精度给人的感觉似乎不一样,但仔细想想也没有什么区别,一方面,char有16个bit表示数值,而short用于表示数值大小的只有15个bit,因此,从char到short会“丢失数值精度”,而另一方面,short有1个bit表示数值的符号,而char却根本没有这么个符号位(所有的bit都用来表示数值大小了),所以从short到char也可能“丢失精度”,只是这里丢失的是有关正负的“精确程度”。
你上面的代码改成如下:
byteb1='a';//正确b1=97
charc1=(byte)97;//正确c1='a'
byteb2=(byte)c1;
charc2=(char)b1;
shorts1='a';//;正确s1=97
charc3=(short)98;//正确c3='b'
shorts2=(short)c3;
charc4=(char)s1;
顺便提一句:每一句java代码的结束语句后面的分号必须是英文输入法状态下的分号。否则报错。
Ⅲ java short[] 转换成 byte[] 然后 byte[] 在转换成 short[]
byte占用一个字节,short占用两个字节。
你可以将short数组中的元素两个字节截取出来,分别存放到byte数组中。
然后在还原成short元素。
如果满意,请采纳,谢谢。
Ⅳ java short 数组转换 byte数组
可以通过循环再加强制转换来进行转换,如下
short[]one={1,2,3};
byte[]two=newbyte[one.length];
for(inti=0;i<two.length;i++){
two[i]=(byte)one[i];
}
for(byteb:two){
System.out.println(b);
}
Ⅳ 为什么java虚拟机jvm要把byte和short的运算都转为int
对的,记得以前看"JAVA虚拟机规范“还是哪本书上,就是这么写的。
就是boolean也就转为int,只不过是转为0和1
Ⅵ java short 数组转换 byte
short[] s = {0, 1, 0, 1, 0, 1, 0, 0};
String str = "";
for(int i = 0; i < s.length; i++){//把数组转成一个字符串01010100
str += s[i];
}
byte b = Byte.parseByte(str, 2);//二进制字符串转成byte
b就是你想要的byte, 值为十进制84, 16进制0x54
当然也可以用位移运算
short[] s = {0, 1, 0, 1, 0, 1, 0, 0};
byte p = 0;
for(int i = 0; i < s.length; i++){
p += s[i]<<(s.length - 1 - i);
}
System.out.println(p);
Ⅶ Java中如何将两个无符号的byte转换为一个有符号的short
这个是可以进行转换和复原的,举例:
short x = -32752;//定义一个short
byte high = (byte) (0x00FF & (x>>8));//定义第一个byte
byte low = (byte) (0x00FF & x);//定义第二个byte
System.out.println(high);//打印第一个byte值
System.out.println(low);//打印第二个byte值
// 复原
short z = (short)(((high & 0x00FF) << 8) | (0x00FF & low));
System.out.println(z);//输出的结果就是-32752
Ⅷ java中Short类中的byteValue()方法怎么用
首先给你个小建议,以后遇到这种问题要记得去查javaAPI
这是API中的Short构造函数的描述:
Short
public Short(short value)
构造一个新分配的 Short 对象,用来表示指定的 short 值。
参数:
valueShort - 所表示的值。
Short
public Short(String s)
throws NumberFormatException
构造一个新分配的 Short 对象,用来表示 String 参数所指示的 short 值。将字符串转换为 short 值,转换方式与基数为 10 的 parseShort 方法所用的方式完全相同。
参数:
s - 要转换为 Short 的 String
抛出:
NumberFormatException - 如果 String 不包含可解析的 short。
另请参见:
parseShort(java.lang.String, int)
也就是说short是不收int型的构造参数的;第一行改一下