//資料轉成 byte static byte[] c2b() { List<byte> myPacket = new List<byte>(); string str ="hello world"; //取得字串 byte 長度 int nByteCt =System.Text.UTF8Encoding.UTF8.GetByteCount(str); //寫入字串長度及字串 myPacket.AddRange(BitConverter.GetBytes((Int32)nByteCt)); myPacket.AddRange(System.Text.UTF8Encoding.UTF8.GetBytes(str)); //直接寫入 byte data myPacket.Add((byte)77); //寫入整數及單精度浮點數 myPacket.AddRange(BitConverter.GetBytes((Int32)79927)); myPacket.AddRange(BitConverter.GetBytes((float)12345.678f)); return myPacket.ToArray(); } //byte 轉成資料 static void c2d(byte[] data) { //讀取字串 byte 長度 int nByteCt =BitConverter.ToInt32(data, 0); //4bytes //讀取字串 string str = System.Text.UTF8Encoding.UTF8.GetString(data, 4, nByteCt); //直接讀取 byte data int byteval = (int)data[4 + nByteCt]; //1byte //讀取整數及單精度浮點數 int val0 = BitConverter.ToInt32(data, 4 + nByteCt + 1); //4bytes float val1 = BitConverter.ToSingle(data, 4 + nByteCt + 1 + 4); } //測試 static void Main(string[] args) { c2d(c2b()); }
C# byte array 和變數之間的轉換
C# 將字串或數字轉成 Byte Array 或是將 Byte Array 轉回字串或數字,這是在檔案讀寫或是網路封包傳送/接收時可能會用到的功能,底下是轉換的範例:
0 意見 :
張貼留言