我正在努力了解有关计算机如何存储内存的更多信息。所以我找到了有关如何表示二进制数或十六进制数的信息,但我发现了一个问题:
Given three n-bit unsigned ints: x, y, z, what is the min #
of bits required to represent x * y + z
所以我的想法是:我是否必须分别考虑所有三个整数并计算尽可能小的数字,例如 0 * 0 + 0
或者我是否必须考虑作为问题结果的另一个变量 n?
我在想这个问题时遇到了一些麻烦。
最佳答案
所需的位数是n + n
。以使用 8 位和最大无符号值为例:
255 * 255 + 255 = 65280
结果小于 65536
,这需要超过 16 位。
关于c - 表示已知大小变量的表达式结果的最少位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40311415/