Tại thời điểm này hầu hết mọi người sẽ nghĩ "Ah bài bệnh này ..:"C# chuyển đổi chuỗi thành byte của nó [] tương đương
byte[] dataB= System.Text.Encoding.ASCII.GetBytes(data);
Tuy nhiên .. vấn đề tôi có là tôi cần những giá trị chính xác của các byte không có mã hóa chỉ là giá trị thuần túy cho mỗi byte. Ví dụ: nếu giá trị của chuỗi là (0xFF32) tôi cũng muốn nó chuyển đổi nó {255,50}. ông lý do cho điều này là tôi có một định dạng tập tin tôi đang cố gắng để đọc mà cửa hàng int như byte tiết kiệm cho họ và sau đó đọc chúng khi chương trình mở ra.
Đây là những gì tôi có cho đến nay:
...
dialog.InitialDirectory =
Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop) +
"/Test";
dialog.Title="Open File";
if (dialog.ShowDialog(this) == DialogResult.OK)
{
StreamReader reader = new StreamReader(dialog.FileName);
string data = reader.ReadToEnd();
reader.Close();
byte[] fileC = System.Text.Encoding.ASCII.GetBytes(data);
File_Read(dialog.FileName,fileC);
}
...
Vì vậy, khi tôi cố gắng và đọc các tập tin nó chuyển đổi các tu tập của nói 0xFF vào 0x3F vì 0xFF là lớn hơn sau đó 127 và 0x3F là một?.
Xin lỗi nếu tôi có vẻ hơi khó hiểu :)
Cảm ơn, Michael
tôi hiểu cách thức các byte bit của tệp và tất cả hoạt động đó là lý do tại sao im có thể hiểu được lưu trữ (ví dụ) một số nguyên 64 bit dưới dạng 8 byte mà tôi không biết cách nhận tại thông tin :); thansk cho sự giúp đỡ của bạn – redorkulated
Nhưng xử lý một tập tin như thể nó có chứa văn bản khi nó không phải là một sự hiểu lầm cơ bản mà bỏng * vì vậy * nhiều người. Bất cứ lúc nào bạn bắt đầu suy nghĩ về "nội dung của một chuỗi như byte mà không có một mã hóa" mà gần như chắc chắn có nghĩa là có một lỗi ẩn. –
tôi đã không nhìn vào "chuỗi" như văn bản trong trường hợp này tôi đã cố gắng để chỉ nhận được nhị phân tinh khiết như thats những gì các tập tin được lưu trữ. Tôi hiểu điểm của bạn mặc dù vậy cảm ơn :) – redorkulated