这里只是一个快速的,是否可以从 i 中找到 aValue 和 bValue 的原始值?如果是这样怎么办?
谢谢。
uint i = Convert.ToUInt32((aValue << 2) & 0x300) | bValue;
这里只是一个快速的,是否可以从 i 中找到 aValue 和 bValue 的原始值?如果是这样怎么办?
谢谢。
uint i = Convert.ToUInt32((aValue << 2) & 0x300) | bValue;
不可能从 中找到这对值i
,因为多对可能产生相同的结果。
很容易看出您是否考虑bValue
设置所有位的示例。i
然后无论 的值如何,都将设置 的所有位aValue
。现在考虑设置每个奇数位,aValue
设置每个偶数位以及bValue
设置最低有效位的bValue
情况。同样,对于一对非常不同的aValue
和,结果将设置所有位bValue
。
aValue=00110011, bValue=11111111 ---> i=11111111
aValue=10110000, bValue=11111111 ---> i=11111111
aValue=00000000, bValue=11111111 ---> i=11111111
aValue=01010101, bValue=10101011 ---> i=11111111
许多值可以产生相同的结果。
即使您拥有其中一个值,您仍然无法确定另一个值,并非总是如此,因为信息在操作过程中丢失,这是不可逆的。