二进制数字推广的逻辑

问题描述 投票:0回答:2

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

boolean flag = 'A' < 'a';
System.out.println(flag);// prints true.
java logic
2个回答
3
投票

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

在你的特定情况下,A0x0041a代表0x0061,所以'A' < 'a'将评估为true

供参考:Unicode (The Java Tutorials)


0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.