存储 unsigned Int 所需的位数
Number of bits required to store unsigned Int
我需要知道存储无符号整数所需的最少位数的正确解决方案是什么。比如说,我有 403 它的二进制表示形式是一个无符号整数 00000000000000000000000110010011 加起来是 32 位。现在,我知道一个无符号整数需要 32 位来存储。但是,当数字只能用 9 位 110010011 来解释时,为什么我们前面有所有这些零。此外,为什么 unsigned int 需要 32 位来存储而 decimal 只需要 8 位?
请详细说明。谢谢
这与需要多少位数无关,而与您的计算机连接的位数 (32) 有关。虽然 9 位就足够了,但您的计算机具有 32 位宽的数据通道 - 它的物理连接方式可有效处理 32、64、128 等。您的编译器可能会为您选择 32 位。
“403”的十进制表示是三位数字,用二进制表示每一位至少需要四位(2^4是16,所以你有6个备用码);所以“403”的最小 "decimal" 表示需要 12 位,而不是八位。
但是,要表示一个普通字符(包括十进制数字以及字母、标点符号等),通常使用 8 位,最多允许 2^8 或 256 个可能的字符。这样表示,需要3x8即24个二进制位来表示403。
我需要知道存储无符号整数所需的最少位数的正确解决方案是什么。比如说,我有 403 它的二进制表示形式是一个无符号整数 00000000000000000000000110010011 加起来是 32 位。现在,我知道一个无符号整数需要 32 位来存储。但是,当数字只能用 9 位 110010011 来解释时,为什么我们前面有所有这些零。此外,为什么 unsigned int 需要 32 位来存储而 decimal 只需要 8 位? 请详细说明。谢谢
这与需要多少位数无关,而与您的计算机连接的位数 (32) 有关。虽然 9 位就足够了,但您的计算机具有 32 位宽的数据通道 - 它的物理连接方式可有效处理 32、64、128 等。您的编译器可能会为您选择 32 位。
“403”的十进制表示是三位数字,用二进制表示每一位至少需要四位(2^4是16,所以你有6个备用码);所以“403”的最小 "decimal" 表示需要 12 位,而不是八位。
但是,要表示一个普通字符(包括十进制数字以及字母、标点符号等),通常使用 8 位,最多允许 2^8 或 256 个可能的字符。这样表示,需要3x8即24个二进制位来表示403。