我想從字符串中的一個字節的位(0或一),但我不知道如何? 謝謝。獲取字節位作爲字符串
回答
我敢打賭,有一個聰明的方法來做到這一點,但它的工作原理:
private string byteToBitsString(byte byteIn)
{
char[] bits = new char[8];
bits(0) = Convert.ToString((byteIn/128) % 2);
bits(1) = Convert.ToString((byteIn/64) % 2);
bits(2) = Convert.ToString((byteIn/32) % 2);
bits(3) = Convert.ToString((byteIn/16) % 2);
bits(4) = Convert.ToString((byteIn/8) % 2);
bits(5) = Convert.ToString((byteIn/4) % 2);
bits(6) = Convert.ToString((byteIn/2) % 2);
bits(7) = Convert.ToString((byteIn/1) % 2);
return bits;
}
看看Convert.ToString()。您可以兩種方式使用它,用於轉換字節 - >位串,反之亦然。
byte value = 56;
// There ...
string bits = Convert.ToString(value, 2);
// ...and Back Again
value = Convert.ToByte(bits, 2);
這個答案應該是被接受的答案。當只給出一個參數時,Convert.ToString(byte)返回一個十六進制字符串,但當給定第二個參數時,Convert.ToString(byte,int)可以使用基數2,8,10或16。 ToString(56,2)'''返回''「」111000「'''但是如果你想要所有的位,那麼'''Convert.ToString(56,2).PadLeft(8,'0') ''''''00111000'''' –
這裏的clweek的重新編寫方法,實際工作:
我都用來代替字符數組StringBuilder類。
樣品:byteToBitsString(157)
打印 「00101111」
private string byteToBitsString(byte byteIn)
{
var bitsString = new StringBuilder(8);
bitsString.Append(Convert.ToString((byteIn/128) % 2));
bitsString.Append(Convert.ToString((byteIn/64) % 2));
bitsString.Append(Convert.ToString((byteIn/32) % 2));
bitsString.Append(Convert.ToString((byteIn/16) % 2));
bitsString.Append(Convert.ToString((byteIn/8) % 2));
bitsString.Append(Convert.ToString((byteIn/4) % 2));
bitsString.Append(Convert.ToString((byteIn/2) % 2));
bitsString.Append(Convert.ToString((byteIn/1) % 2));
return bitsString.ToString();
}
是我的竊聽?我將它從VB轉換而來,並且不會定期使用C#,所以有可能出現愚蠢的錯誤,但它是什麼? – clweeks
這裏有一個位模擬的方式來做到這一點:
public static string ByteToBinaryString(byte byteIn)
{
StringBuilder out_string = new StringBuilder();
byte mask = 128;
for (int i = 7; i >=0 ; --i)
{
out_string.Append((byteIn & mask) != 0 ? "1" : "0");
mask >>= 1;
}
return out_string.ToString();
}
或位的敲打的方式來做到這一點豪華的變體:
public static string ToByteFormat(int valIn, int digits)
{
var bitsString = new StringBuilder(digits);
int mask = (1 << digits - 1);
for(int i = 0; i < digits; i++)
{
bitsString.Append((valIn & mask) != 0 ? "1" : "0");
mask >>= 1;
}
return bitsString.ToString();
}
- 1. 從字符串獲取字節
- 2. 獲取字符串的字節長度
- 3. 從數字字符串獲取位
- 4. Java讀取字符串爲字節[]
- 5. 打印字符串作爲字節
- 6. 解釋Java字節[]作爲字符串
- 7. 獲取類型的字符串作爲字符串
- 8. Orchard CMS:將字符串URL作爲字符串獲取
- 9. Angular2:獲取不帶參數的字符串作爲字符串
- 10. 從字節串獲取任意位bits
- 11. 如何從字符串xml中再次獲取字符串作爲字符串
- 12. 將RoleCollection作爲字符串獲取
- 13. 獲取OSName作爲字符串C++
- 14. 獲取iframe內容作爲字符串
- 15. 獲取WebClient錯誤作爲字符串
- 16. 獲取「event.target.id」作爲字符串
- 17. 獲取json值作爲字符串?
- 18. 獲取xElements作爲字符串逗號
- 19. 獲取excel行作爲TXT字符串
- 20. 獲取HTML標記作爲字符串
- 21. 獲取NSMutableDictionary鍵作爲字符串?
- 22. 獲取XML結果作爲字符串
- 23. 的Android獲取XML作爲字符串
- 24. 獲取stacktrace作爲字符串
- 25. 從XML節點獲取所有內容作爲字符串
- 26. 獲取xml節點值作爲字符串C#
- 27. 如何獲取節點的xml內容作爲字符串?
- 28. 將子節點作爲字符串獲取
- 29. 以字節爲單位獲取UTF-8字符串長度的最佳方法?
- 30. 以字節爲單位獲取std :: string的字符串的大小
請參閱使用Convert.ToString(value,2).PadLeft(8,'0')的其他答案。 –