关于有符号数据表示范围的问题

设字长为n+1,各表示范围如下:
原码、反码:

-\left( 2^{n}-1\right) \leq x\leq 2^{n}-1

补码、移码:

-2^{n}\leq x\leq 2^{n}-1

关于补码的问题

大部分人应该都会有的疑问:字长假设为8,-128的补码为啥是10000000?
答案:不要多想,仅仅是因为-127的补码是10000001,我们发现还有一个10000000没用到,恰好【-127】补码【10000001】-1=【10000000】,就让它表示-128吧,所以此时-128没有原码和反码。下面附上相关资料:

相关资料
相关资料

数据边界对齐原则

各变量存放的地址相对于结构的起始地址的偏移量为sizeof(类型)或其整数倍。结构的总大小是其成员中最大类型的sizeof(该类型)整数倍。所以在定义结构体时最好把结构中的变量按照类型大小从小到大声明,以减少中间的填补空间。