存储无符号整型所需的位数



我需要知道存储unsigned int所需的最小位数的正确解决方案是什么。比如说,我有403,它的二进制表示为无符号int,将是00000000000000000000000110010011,加起来是32位。现在,我知道一个无符号整数需要32位来存储。但是,为什么我们要把所有的零放在前面,而这个数字可以只用9位来解释110010011。此外,为什么unsigned int需要32位来存储,而decimal只需要8位呢?请详细解释一下。由于

这与需要多少位无关,而与您的计算机连接了多少位(32)有关。虽然9位就足够了,但你的计算机有32位宽的数据通道——它的物理连接是为了32位、64位、128位等的有效传输。你的编译器可能会为你选择32位。

"403"的十进制表示是三位数字,用二进制表示每个数字至少需要四位(2^4是16,所以你有6个备用代码);因此,"403"的最小"十进制"表示需要12位,而不是8位。

然而,要表示一个普通字符(包括十进制数字以及alpha,标点符号等),通常使用8位,这允许最多2^8或256个可能的字符。用这种方式表示,需要3x8或24二进制位来表示403。

最新更新