Tôi có danh sách boolean với 92 boolean, tôi muốn danh sách được chuyển đổi thành chuỗi, tôi nghĩ mình sẽ lấy 8 booleans (bit) và đặt chúng trong Byte (8 bit) và sau đó sử dụng ASCII để chuyển đổi nó thành giá trị byte thành char rồi thêm các ký tự vào một chuỗi. Tuy nhiên sau khi googeling cho hơn sau đó 2 giờ, không may mắn atm. Tôi đã thử chuyển đổi danh sách thành một danh sách Byte nhưng nó không hoạt động hoặc là ^^.Danh sách chuyển đổi <boolean> thành chuỗi
String strbyte = null;
for (int x = 0; x != tmpboolist.Count; x++) //tmpboolist is the 90+- boolean list
{
//this loop checks for true then puts a 1 or a 0 in the string(strbyte)
if (tmpboolist[x])
{
strbyte = strbyte + '1';
}
else
{
strbyte = strbyte + '0';
}
}
//here I try to convert the string to a byte list but no success
//no success because the testbytearray has the SAME size as the
//tmpboolist(but it should have less since 8 booleans should be 1 Byte)
//however all the 'Bytes' are 48 & 49 (which is 1 and 0 according to
//http://www.asciitable.com/)
Byte[] testbytearray = Encoding.Default.GetBytes(strbyte);
PS Nếu có ai có đề xuất tốt hơn về cách mã & giải mã danh sách Boolean thành chuỗi? (Vì tôi muốn mọi người chia sẻ danh sách boolean của họ với một chuỗi thay vì danh sách 90 1 và 0.)
EDIT: đã làm việc ngay bây giờ! ty tất cả vì đã giúp
string text = new string(tmpboolist.Select(x => x ? '1' : '0').ToArray());
byte[] bytes = getBitwiseByteArray(text); //http://stackoverflow.com/a/6756231/1184013
String Arraycode = Convert.ToBase64String(bytes);
System.Windows.MessageBox.Show(Arraycode);
//first it makes a string out of the boolean list then it uses the converter to make it an Byte[](array), then we use the base64 encoding to make the byte[] a String.(that can be decoded later)
tôi sẽ nhìn vào encoding32 sau, ty cho tất cả sự giúp đỡ một lần nữa :)
bạn cần phải cụ thể hơn về những gì bạn muốn chuỗi của bạn trông giống như –
Nó không rõ ràng những gì bạn muốn kết thúc với. Một chuỗi là mã hóa ascii của các bit, sau đó có thể được chuyển trở lại thành các boolean? – jlew
'Encoding.Default.GetBytes' không làm những gì bạn nghĩ. Xem câu hỏi này: http://stackoverflow.com/questions/2989695/how-to-convert-a-string-of-bits-to-byte-array –