Java简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:19:24
class I{
public static void main(String[] args) {
byte b;
b='3'; //为什么这里加两个单引号,输出结果就成-103。
b=(byte)(b*3);
System.out.println(b);
}
}

首先,单引号表示字符,由3在ASCII代码中的值是51,可得0001 1101 3~51;
其次,b*3相当于51*3,结果是153,即1001 1001;
再次,153是以补码的形式存到机器中的,值为1110 0111 ;
最后,说明一下byte(),是以原始值显示,1110 0111 等于-103。