首页 > 解决方案 > 为什么有符号的 char min -128 而不是 -127?

问题描述

内存中的单数以第一位定义符号的方式表示。我以 char 为例(也是最简单的类型),但这也涉及其他带符号的数据类型。

14 = 00001110

由于第一个数字是正数,所以第一位是 0。最大有符号字符表示如下:

127 = 01111111

简单地把第一位改成负数似乎是合理的,但是其他7位仍然只能代表127的个数(如果不考虑第一位的话)。那么如何存储-128?

标签: cbinary

解决方案


-128 将表示为10000000看起来像 -0,但这是表示 0 的冗余方式)。


推荐阅读