我要做的是循环遍历字节数组中的值,得到每个值的第一个数字,并用第二个数字交换它的位置,因此35将是53而24将是42 ..我几乎可以这样做,但我必须将所有内容转换为字符串,这似乎有点矫枉过正
我已经尝试了一段时间,但到目前为止,我只想到我可以将所有内容转换为字符串然后处理它们,只是看起来有点笨重......
答案 0 :(得分:8)
听起来你想要在每个字节中交换高和低半字节。
0x35; // High nibble = 3, Low Nibble = 5
为此,您需要将高半字节右移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;
}
答案 1 :(得分:1)
byte nmbBase =16; //or any other 10 for decimal
byte firstDigit = number /nmbBase;
byte secondDigit = number % nmbBase;
number = secondDigit*numberBase + firstDigit;
这是来自手机,抱歉有任何错误。你应该到达应该去的方向。