use*_*232 2 c
我有一个简单的代码
char t =(char)(3000);
那么t的值是-72.十六进制值3000是0xBB8.我不明白为什么t的值是-72.
谢谢你的回答.
关于Mac,我不知道.所以我的结果是-72.据我所知,MAC正在使用Big Endian,它会影响结果吗?我没有任何MAC计算机进行测试,所以我想知道MAC人员.
Art*_*ius 12
十六进制值3000是0xBB8.
因此char的十六进制值(顺便说一下,似乎在编译器上签名)是0xB8.
如果它是无符号的,则0xB8将为184.但是由于它已经签名,其实际值减少了256,即-72.
如果你想知道为什么会这样,请阅读两个补码表示法.
归档时间:
16 年,4 月 前
查看次数:
1080 次
最近记录:
12 年,12 月 前