//資料轉成 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 意見 :
張貼留言