二进制数字推广的逻辑

时间:2017-12-19 14:07:22

标签: java logic

请在下面的代码中解释二进制数字促销的逻辑。

boolean flag = 'A' < 'a';
System.out.println(flag);// prints true.

2 个答案:

答案 0 :(得分:3)

在Java中,char原始数据类型被定义为16位Unicode字符,其值为十六进制范围0x00000xFFFF。比较两个char值时,它是使用的16位十六进制值。

在您的具体案例中,A0x0041a代表0x0061,因此'A' < 'a'将评估为true。< / p>

供参考:Unicode (The Java Tutorials)

答案 1 :(得分:0)

当您比较两种不同类型(通常是数字)时,它会被称为促销,其中一种将转换为另一种,以便进行比较。像:

int x = 5;
double y = 6;
if (x < y)
    ...

在Java intdouble中可以进行比较。在这种情况下,int将隐式转换为double

在您的情况下,没有促销活动。将存储在内存中的字符作为数字(在Java中,它基于UTF-16标准并存储为正好2个字节,如short)和'A' < 'a'整数中的字符进行比较。