在C#中將32位整數分成四個(無符號)字符的最佳方式是什麼?從32位整數轉換爲4個字符
5
A
回答
7
Quick'n'dirty:
int value = 0x48454C4F;
Console.WriteLine(Encoding.ASCII.GetString(
BitConverter.GetBytes(value).Reverse().ToArray()
));
整型轉換爲字節,扭轉了字節陣列,用於以正確的順序,然後讓從它的ASCII字符表示。
編輯:Reverse方法是.NET 3.5的擴展方法,僅供參考。在您的方案中也可能不需要反轉字節順序。
乾杯,大衛
+0
只是將它們打印到控制檯的最終目標是什麼?如果沒有,與Jason和Sam的建議相比,這種方法有很多不必要的開銷。 – Kip 2008-09-23 14:40:16
4
目前尚不清楚,如果這是你想要真的什麼,但:
int x = yourNumber();
char a = (char)(x & 0xff);
char b = (char)((x >> 8) & 0xff);
char c = (char)((x >> 16) & 0xff);
char d = (char)((x >> 24) & 0xff);
這是假設你想解釋爲最低範圍的Unicode字符的字節。
0
做得到的8字節塊:
int a = i & 255; // bin 11111111
int b = i & 65280; // bin 1111111100000000
做下來打破了前三個字節到一個字節,只需通過適當的數量將它們劃分和執行另外一個邏輯,並讓您的最後一個字節。
編輯:Jason的解決方案與bitshifts當然更好。
5
Char?也許你正在尋找這個方便的小幫手功能?
Byte[] b = BitConverter.GetBytes(i);
Char c = (Char)b[0];
[...]
0
BitConverter
0
.NET使用Unicode,炭是2個字節不是1
向含有非unicode文本使用System.Text.Encoding類的二進制數據之間進行轉換。
如果你要4個字節,而不是字符,然後替換字節炭在傑森的回答
4
我已經嘗試了一些方法和主頻轉換百萬整數所花費的時間。
內置轉換方法,325000種蜱:
Encoding.ASCII.GetChars(BitConverter.GetBytes(x));
指針轉換100000種蜱:
static unsafe char[] ToChars(int x)
{
byte* p = (byte*)&x)
char[] chars = new char[4];
chars[0] = (char)*p++;
chars[1] = (char)*p++;
chars[2] = (char)*p++;
chars[3] = (char)*p;
return chars;
}
Bitshifting,77000種蜱:
public static char[] ToCharsBitShift(int x)
{
char[] chars = new char[4];
chars[0] = (char)(x & 0xFF);
chars[1] = (char)(x >> 8 & 0xFF);
chars[2] = (char)(x >> 16 & 0xFF);
chars[3] = (char)(x >> 24 & 0xFF);
return chars;
}
相關問題
- 1. 如何將字符串轉換爲32位整數數組?
- 2. 將4位8位無符號整數轉換爲32位浮點型
- 3. 使用PDO從64位轉換爲32位的整數
- 4. 轉換爲32位整數24位整數(2S補碼)在C++
- 5. 從字符串64位整數轉換
- 6. 32位無符號整數(大端)轉換爲長和後
- 7. 從字符串轉換爲整數
- 8. 轉換一個32位的數字爲16位,
- 9. 如何將2個無符號16位整數轉換爲Perl中的帶符號32位整數
- 10. 如何將兩個16位整數(高位字/低位字)轉換爲32位浮點數?
- 11. 如何將32個字符大小的字符大小的doRegister轉換爲32位字符的字符串?
- 12. 如何將代碼點32位整數數組(UTF-32?)轉換爲Windows本地字符串?
- 13. 將單個字典值從字符串轉換爲整數?
- 14. 將4個字符串轉換爲int32
- 15. 將32位無符號小尾數轉換爲javascript中的整數
- 16. 從輸入轉換整數的字符串爲整數
- 17. 從字符串中提取整數並轉換爲整數?
- 18. 將32位實數轉換爲2x 16位字節
- 19. 將整數轉換爲32位二進制 - 輸出反向
- 20. 將字符數組轉換爲整數
- 21. 將字符數組轉換爲整數
- 22. 將字符數組轉換爲整數
- 23. 我可以提取no。 2位數字從字符串轉換爲整數?
- 24. PHP將整數轉換爲32位(4字節)十六進制套接字編程
- 25. 如何將有符號的32位int轉換爲無符號的32位int?
- 26. 將bitstring轉換爲32位有符號整數會產生錯誤的結果
- 27. 將4個字符解釋爲整數
- 28. 將四個字符的字符串轉換爲長整數
- 29. C++如何將數組的最後4個字符轉換爲整數?
- 30. 整數轉換爲字符串?
你所期望的字符是什麼成爲? ASCII字節的解釋? – 2008-09-23 13:41:06
你是指字符或字節?字符是給定編碼中文本的單個字符,可能對應於多個字節 - 可能不是您想要的。 – 2008-09-23 14:03:09