C++求我睡过的七个大佬解答

稍微了解一下二进制-十进制-十六進制就能理解越是基本的约定俗成的东西其实越不太好说明白,因为二进制是计算机整个体系结构的基础(再往下就涉及到逻辑电路了)

简化一下问题拿8bit举例:

如果用一个字节表示无符号整数,取值范围就是0~255(0x00~0xFF)

如果用一个字节表示有符号整数取值范围就是-128~127 (0x80~07F),其Φ所有负数最高位都是1——到这你应该能理解为什么取值不是-127~128

32位/64位整数表示方式同理

至于负数为什么这么对应(比如为什么0x代表的是minInt而不昰-1)可以自行了解原码/反码/补码之类的东西以及与/或/非等等之类的基本逻辑运算

你可以认为这种表示方式是人为规定且大家公认好用的(兼顾计算机二进制运算效率以及人为理解)——至少目前没有人拿出更好的表示方式

我要回帖

更多关于 我睡过的七个大佬 的文章

 

随机推荐