有没有通用的方法来表示包含 n
的数字位使用 n-1
位;例如显示1001
其中有 4 位,使用 XXX where X = {0|1}
具有 3 位。此外,映射应该能够检索原始二进制文件而不会发生任何冲突。
这个page是迄今为止我发现的最相关的引用文献,它尝试计算位数,但不减少位数。
编辑:我知道这听起来不可能,但我很好奇是否存在解决方法!
最佳答案
n 位有 2^n 个可能值,(n-1) 位有 2^(n-1) 个可能值。因此您无法无损地从前者转换为后者。
如果可能的话,您还可以使用 n-2 位递归地表示您的 n-1 位,等等。一切都可以用 0 位来表示:)
您会被链接的页面误导,这解释了 x &= x-1
删除了位字符串中的 1
。
10100
& 10011
= 10000
关于c - 将位数减少 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41816528/