【发布时间】:2013-10-10 10:27:03
【问题描述】:
如何将一个字节的前 n 位与另一个字节的后 8-n 位合并?
我知道从第一个中选择 3 位,从第二个中选择 5 位(我在 DES 加密算法中观察到)
zByte=(xByte & 0xE0) | (yByte & 0x1F);
但我不知道为什么在这种情况下我们需要使用 0XE0 和 0X1F 背后的数学原理。所以我试图了解每一位的细节。
【问题讨论】:
-
C#或Java?选一个。到目前为止,您还尝试过什么? -
merge 表示串联,AND?OR?
-
我知道 Java 和 C#,不管我会用哪种语言得到答案。我可以用其他语言解释它。我知道类似下面的内容,用于从第一个中选择 3 位,从第二个中选择 5 位(我在 DES 加密算法中观察到)zByte=(xByte & 0xE0) | (yByte & 0x1F);但我不知道为什么我们需要在这种情况下使用 E0 和 1F 背后的数学。所以我试图了解每一位的细节。 @RajeshSubramanian 我的意思是串联。
-
这不是串联。