是否存在使用n
位表示包含n-1
位的数字的通用方法;例如使用1001
显示XXX where X = {0|1}
有4位的YogaSpaceEvent
。此外,映射应该能够在没有任何冲突的情况下检索原始二进制文件。
这个page是迄今为止我发现的最相关的参考,它试图计算位数,但不减少位数。
编辑:我知道这听起来不可能,但我很好奇是否有解决方法可以这样做!
答案 0 :(得分:3)
n个位有2 ^ n个可能的值,而(n-1)个位有2 ^(n-1)个。所以你无法无损地从前者转换为后者。
如果可能的话,你也可以使用n-2比特递归地表示你的n-1比特。所有东西都可用0比特表示:)
您被链接的网页误导了,这解释了x &= x-1
删除了位字符串中的1
。
10100
& 10011
= 10000
答案 1 :(得分:1)
如果您设法在16个数字之间建立一对一的映射
,您将非常聪明0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111
和八个数字
000,001,010,011,100,101,110,111.