合并两个字节格式 [英] Merge two bytes format

查看:154
本文介绍了合并两个字节格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何合并字节格式

string s = textBox1.Text;
            byte[] bytes = Encoding.ASCII.GetBytes(s);            

            //byte[] bytesToSend = new byte[16] { 0x01, 0x46, 0x42, 0x44, 0x2d, 0x2d, 0x2d, 0x53, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x17};
            byte[] bytesToSend = new byte[7] { 0x01, 0x46, 0x4d, 0x42, 0x2d, 0x2d, 0x2d };
            byte b3 = (byte)(bytesToSend & bytes);

            clientSocket.Send(b3);



谢谢

我尝试过的事情:

我锥子运算符&和+,但仍然出现错误CS0019运算符&"不能应用于类型为"byte []"和"byte []"的操作数

解决方案

<您不能对整个数组进行AND:AND是一个运算符,它对数组的各个元素起作用,因为它为"+".如果要合并两个数组,以便得到一个更大的数组,其中一个元素的所有元素都跟着另一个元素的所有元素,那么请执行以下操作:

byte[] a1 = new byte[16] { 0x01, 0x46, 0x42, 0x44, 0x2d, 0x2d, 0x2d, 0x53, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x17};
byte[] a2 = new byte[7] { 0x01, 0x46, 0x4d, 0x42, 0x2d, 0x2d, 0x2d };
byte[] combined = a1.Concat(a2).ToArray();


我的解决方案

string s = textBox1.Text;
            var bytes = Encoding.ASCII.GetBytes(s);            

            //načtení souboru
            byte[] bytesToSend = new byte[8] { 0x01, 0x46, 0x4d, 0x42, 0x2d, 0x2d, 0x2d, 0x52 };
            byte[] bytesToSend2 = new byte[1] {0x17};           

            var load = bytesToSend.Concat(bytes).ToArray();
            var load2 = load.Concat(bytesToSend2).ToArray();
            clientSocket.Send(load2);        

            //print souboru
            System.Threading.Thread.Sleep(1000);
            byte[] print = new byte[16] { 0x01, 0x46, 0x42, 0x44, 0x2d, 0x2d, 0x2d, 0x53, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x17 };
            clientSocket.Send(print);

            clientSocket.Close();


How can I merge bytes format

string s = textBox1.Text;
            byte[] bytes = Encoding.ASCII.GetBytes(s);            

            //byte[] bytesToSend = new byte[16] { 0x01, 0x46, 0x42, 0x44, 0x2d, 0x2d, 0x2d, 0x53, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x17};
            byte[] bytesToSend = new byte[7] { 0x01, 0x46, 0x4d, 0x42, 0x2d, 0x2d, 0x2d };
            byte b3 = (byte)(bytesToSend & bytes);

            clientSocket.Send(b3);



thank you

What I have tried:

I tryid operators & and + but still error CS0019 Operator ''&'' cannot be applied to operands of type ''byte[]'' and ''byte[]''

解决方案

You can''t AND whole arrays: AND is an operator that works on individual elements of the array, as it "+". If that you want to do is combine the two arrays so your get one bigger array with all the elements of one followed by all the elements of the other, then do this:

byte[] a1 = new byte[16] { 0x01, 0x46, 0x42, 0x44, 0x2d, 0x2d, 0x2d, 0x53, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x17};
byte[] a2 = new byte[7] { 0x01, 0x46, 0x4d, 0x42, 0x2d, 0x2d, 0x2d };
byte[] combined = a1.Concat(a2).ToArray();


My solution

string s = textBox1.Text;
            var bytes = Encoding.ASCII.GetBytes(s);            

            //načtení souboru
            byte[] bytesToSend = new byte[8] { 0x01, 0x46, 0x4d, 0x42, 0x2d, 0x2d, 0x2d, 0x52 };
            byte[] bytesToSend2 = new byte[1] {0x17};           

            var load = bytesToSend.Concat(bytes).ToArray();
            var load2 = load.Concat(bytesToSend2).ToArray();
            clientSocket.Send(load2);        

            //print souboru
            System.Threading.Thread.Sleep(1000);
            byte[] print = new byte[16] { 0x01, 0x46, 0x42, 0x44, 0x2d, 0x2d, 0x2d, 0x53, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x17 };
            clientSocket.Send(print);

            clientSocket.Close();


这篇关于合并两个字节格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆