栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

加减运算符为什么起作用?(java)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

加减运算符为什么起作用?(java)

来自文档

char数据类型是单个16位Unipre字符。

A

char
由其代码点值表示:

  • 分钟
    'u0000'
    (或0)
  • 最多:(
    'uffff'
    或65,535)

您可以在ASCII表上看到所有英文字母代码点。

请注意,

0 == u0000
65,535 == uffff
,以及之间的所有内容。它们是对应的值。

char
实际上,A 仅存储为数字(其代码点值)。我们有语法来表示像
char c = 'A';
这样的字符,但它等效于
char c =65;
并且
'A' == 65
为true。

因此,在您的代码中,字符用其十进制值表示以进行算术运算(整数从0到65,535)。

例如,char

'A'
由其代码点
65
(ASCII表中的十进制值)表示:

System.out.print('A'); // prints ASystem.out.print((int)('A')); // prints 65 because you casted it to an int

请注意,a

short
是一个16位有 符号 整数,因此即使a
char
也是16位,a的最大整数值
char
(65,535)仍超过a的最大整数值
short
(32,767)。因此,
(short)
从a强制转换为
char
不能始终有效。并且a的最小整数值为
char
0,而a的最小整数值为
short
-32,768。


对于您的代码,假设

char
是was
'D'
。请注意,
'D' == 68
由于其代码点是
68

return 10 + ch - 'A';

这将返回

10 + 68 - 65
,因此它将返回
13

现在,假设字符是

'Q' == 81

if (ch >= 'A' && ch <= 'F')

由于

'Q' > 'F'
81 > 70
),这是错误的,因此它将进入代码
else
块并执行:

return ch - '0';

这将返回,

81 - 48
因此它将返回
33

您的函数返回一个

int
类型,但是如果要返回一个类型
char
或将其
int
强制转换为
char
之后的类型,则
33
返回的值将表示该
'!'
字符,因为
33
它是其代码点值。在ASCII表或Unipre表中查找字符以进行验证
'!'== 33
(比较十进制值)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/483356.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号