class wo
{
byte a=-7,c=~a;
void wohanyi()
{
System.out.println(c);
}
public static void main(String[] args)
{
wo woo=new wo();
woo.wohanyi();
}
}初学JAVA,字节类型的是-128到127,这个程序编译时候怎么能说可能损失精度呢?没有超出这个范围啊?
{
byte a=-7,c=~a;
void wohanyi()
{
System.out.println(c);
}
public static void main(String[] args)
{
wo woo=new wo();
woo.wohanyi();
}
}初学JAVA,字节类型的是-128到127,这个程序编译时候怎么能说可能损失精度呢?没有超出这个范围啊?
{
byte a=-7,c=(byte) ~a;
void wohanyi()
{
System.out.println(c);
}
public static void main(String[] args)
{
Wo woo=new Wo();
woo.wohanyi();
}
} //计算的结果我想是这样的哦:
a=-7 是7的按位取反加1 得是 1111 1001
然后在 ~a (反就是 0 变1,1变0 ) 得 0000 0110 结果是6
我想可能是在进行 换算的时候,他就应该 是被转成了int 类型,所以要用 byte 转码一下!
char byte short 是不能直接比较大小的它们必须转换成int型才能比较。。