Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bit manipulation 按位和反转(&;11111)_Bit Manipulation - Fatal编程技术网

Bit manipulation 按位和反转(&;11111)

Bit manipulation 按位和反转(&;11111),bit-manipulation,Bit Manipulation,如果有一个长的位字符串,比如说,10010101010110101,你就这样做了 10010101010101&11111111 如果位字符串被截断,您如何反转此过程? 我被告知,如果执行此操作,生成的位字符串将只有8位。AND操作: | 0 1 --|----- 0 | 0 0 1 | 0 1 输出1=>两个输入都是1 输出0=>输入是三种可能性中的任意一种:{0,1},{1,0}或{0,0} 不能从0映射回原始位。映射是多对一的。您不能。这是一个“有损”操作:-)这就像问“如果我

如果有一个长的位字符串,比如说,10010101010110101,你就这样做了

10010101010101&11111111

如果位字符串被截断,您如何反转此过程? 我被告知,如果执行此操作,生成的位字符串将只有8位。

AND操作:

  | 0  1
--|-----
0 | 0  0
1 | 0  1
输出
1
=>两个输入都是
1

输出
0
=>输入是三种可能性中的任意一种:
{0,1}
{1,0}
{0,0}


不能从
0
映射回原始位。映射是多对一的。

您不能。这是一个“有损”操作:-)这就像问“如果我有三个数字的总和,并且只知道其中一个原始数字,我如何反转加法来找出另外两个是什么”。答案是你不能,出于同样的原因。如果您需要它是可逆的,您必须存储原始数据…我知道您在使用&运算符时会丢失数据,但这只是在位字符串中有0的情况下,对吗?我本应该更清楚,但我想问的是,如果一个位字符串类似于11111111,而另一个位字符串更长,是否有办法撤消该操作。。。是一个0。