"hits": [
{
"_index": "datetimeindexf",
"_type": "_doc",
"_id": "1",
"_score": 1.5753641,
"_source": {
"dateTime": "12:17:08",
"orgId": "z2store",
"type": "web"
}
}
]
我期望在那里出现错误,但是程序运行并且输出为16705。有人可以解释一下吗?
答案 0 :(得分:4)
任何人都可以解释一下吗?
'AA'
是一个多字符字符常量。它的类型为int
。它的值是实现定义的。
这里的“实现”是编译器,您的编译器具有int
值'AA'
映射到的规则。映射似乎很容易。因为我不知道您的编译器,所以我猜到了。请确保查阅您的编译器文档。
'AA'
映射到值'A' << 8 | 'A'
。将'A'
与另一个'A'
移了一个字节。您的系统很可能使用ASCII表示字符。 'A'
以ASCII映射到十进制值65
(十六进制0x41
)。计算0x41 << 8 | 0x41
得出16705
的十进制值。由于这是一个int
值,因此可以使用%d
打印结果。因此,您的代码等效于printf("%d\n", 16705)
。
答案 1 :(得分:0)
'AA'
是一种异国情调的野兽。这是一个字符文字,但是ASCII没有单个字符'AA'
。这说明了为什么您改为获取非ASCII值。
答案 2 :(得分:-1)
运行此代码是因为char数据类型是数字,并且您已请求打印真数字“ AA”