用一个字节中的第二个数字替换第一个数字

ace*_*007 1 .net c#

我想要做的是循环遍历字节数组中的值获取每个值的第一个数字并用第二个数字交换它的位置,因此35将是53而24将是42 ..我几乎可以这样做但是我必须将所有内容转换为字符串,这似乎有点矫枉过正

我已经尝试了一段时间,但到目前为止,我只想到我可以将所有内容转换为字符串然后处理它们,只是看起来有点笨重......

Jon*_*art 8

听起来你想在每个字节中交换高低字节.

0x35; // High nibble = 3,  Low Nibble = 5
Run Code Online (Sandbox Code Playgroud)

要做到这一点,你想要将高半字节右移4位(使其成为低半字节),并将低半字节移位4位(使其成为高半字节).

var ar = new byte[] { 0x35, 0x24 };

for (int i=0; i<ar.Length; i++) {
    byte b = ar[i];
    b =  (b>>4) | ((b&0x0F)<<4);
    ar[i] = b;
}
Run Code Online (Sandbox Code Playgroud)