我在C#中有一個轉換問題。基本上,我試圖將整數轉換爲字節,以便我們只使用低4位。例如255 = 0F 0F
或:如何使用C#將int轉換爲僅使用低4位的字節?
0xpqrs = 0p 0q 0r 0s
5*16*16*16 + 1*16*16 + 15*16 + 1 = 05 01 0f 01
如何在C#中實現這一點?
我在C#中有一個轉換問題。基本上,我試圖將整數轉換爲字節,以便我們只使用低4位。例如255 = 0F 0F
或:如何使用C#將int轉換爲僅使用低4位的字節?
0xpqrs = 0p 0q 0r 0s
5*16*16*16 + 1*16*16 + 15*16 + 1 = 05 01 0f 01
如何在C#中實現這一點?
INT =>字節:
int value = 0x51f1;
byte s = (byte)(value & 0xf);
byte r = (byte)(value>>4 & 0xf);
byte q = (byte)(value>>8 & 0xf);
byte p = (byte)(value>>12 & 0xf);
字節=> INT:
int value = p<<12 | q<<8 | r<<4 | s;
字節[] bArray = System.BitConverter.GetBytes(ⅰ);
這將獲得字節,但不做掩碼。 – 2012-08-04 16:14:58
是的,你是對的。 – halftone 2012-08-04 16:27:38
Lucero的答案被修改爲在具有更長整數的循環中工作。
public static byte[] intToBytesV2(ulong l)
{
byte[] theBytes = new byte[8];
for (int i = 0; i < 8; i++) {
theBytes[i] = (byte)(l >> (i * 4) & 0xf);
}
return theBytes;
}
POM =)
道歉之前 - 我想我會誤解了這個問題。 – 2012-08-04 16:16:02
沒有問題!然而有一個問題,+優先於<<運算符。 – Lucero 2012-08-04 16:18:18
謝謝。好的答案 – 2012-08-04 16:22:04