我需要知道存储unsigned int所需的最小位的正确解决方案是什么。比方说,我有403其二进制表示为unsigned int将是00000000000000000000000110010011,最多可加32位。现在,我知道无符号整数需要32位才能存储。但是,为什么我们在前面只有9位110010011来解释所有那些零。此外,为什么unsigned int需要32位存储而十进制只需要8位? 请详细解释。感谢
答案 0 :(得分:0)
这与需要多少位无关,而与计算机连接的位数有关(32)。虽然9位就足够了,但是你的计算机有32位宽的数据通道 - 它的物理连线效率高达32,64,128等。你的编译器可能会为你选择32位。
" 403"的十进制表示是三位数,并且以二进制表示每个数字需要至少四位(2 ^ 4是16,所以你有6个备用代码);所以最小的"十进制"代表" 403"需要12位,而不是8位。
然而,为了表示正常字符(包括十进制数字以及字母,标点符号等),使用8位是常见的,这允许最多2 ^ 8或256个可能的字符。以这种方式表示,需要3x8或24个二进制位来表示403。