byte数组本质以及其与其他进制的转换

目前工作使用c#,由于和硬件打交道必然要使用串口通信等内容,而其中一定会使用byte数组用于发送数据(其实字符串也可以),研究了几天觉得有必要记录下来。

首先,byte的本质是啥?其实就是一个8位的二进制数字,也就是说表示从0-255的一个数字,所以byte数组中的数据可以是各种数字,例如下例:

byte[] byteArrary = { 0x01, 0x02, 0x03, 34 };,但是如果将34改为340,vs就会报错,这就是由于超过了255的原因。这里引申出一个问题,如果是一个int型的变量呢?答案是不行!因为这个变量是不确定的有可能超过255。

发送数据常用的语句如下:serialPort1.Write(byteArry, 0, 2);,这句话的含义是将byte数组中从偏移量位置为0的地方开始的2个字节发送至串口,也就是上例中的0x01和0x02。

正是由于这个原因,网上的很多资料的转换都是将其他进制转换为byte数组而不是byte,一开始我也无法理解,具体的转换代码我不详细说明网上有很多,这里整理几个有代表性的:

int转byte  byte[] intConvertbyte = System.BitConverter.GetBytes(iNumDec);


string转byte  说白了就是先转ASC码,然后再换,

System.Text.ASCIIEncoding ASCII  = new System.Text.ASCIIEncoding();
Byte[] BytesMessage = ASCII.GetBytes(StringMessage);

知道以上两个基本就可以了,纯属个人归纳总结!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值