稍微了解一下二进制-十进制-十六進制就能理解越是基本的约定俗成的东西其实越不太好说明白,因为二进制是计算机整个体系结构的基础(再往下就涉及到逻辑电路了)
简化一下问题拿8bit举例:
如果用一个字节表示无符号整数,取值范围就是0~255(0x00~0xFF)
如果用一个字节表示有符号整数取值范围就是-128~127 (0x80~07F),其Φ所有负数最高位都是1——到这你应该能理解为什么取值不是-127~128
32位/64位整数表示方式同理
至于负数为什么这么对应(比如为什么0x代表的是minInt而不昰-1)可以自行了解原码/反码/补码之类的东西以及与/或/非等等之类的基本逻辑运算
你可以认为这种表示方式是人为规定且大家公认好用的(兼顾计算机二进制运算效率以及人为理解)——至少目前没有人拿出更好的表示方式