今天和大家分享一下C#中 byte转int的一点知识,如果你已经熟悉,那么就当我是个菜鸟吧,连这个这要写篇博文。
写代码接触最多的就是数值类型,我们习惯了声明一个int表示一个数值,但是接触到上位机通讯后,这一切都变得不那么随意了,我们知道,在通讯数据包中都是用一串byte表示数据,当我们拿到数据后需要检查收到的数据是什么样的,现在假设有一个场景如下:
1.某个byte表示传过来的音量值,数值范围是0-100;那么一个byte完全可以存下,这个时候byte与int存储值是等价的,我们可以使用int i=byte[1]这样的代码。
2.假设传输的指令中还包含编号信息,范围是0-5000,那么这个时候一个byte是表示不了的(一个byte有8个bit 也就是2的8次方个数值:0-255),所以需要至少两个字节表示。通常我们会规定高字节在前。假设这两个字节是byte[0]byte[1],那么我们可以使用int i =byte[1]<<8 +byte[0]得到想到的数值。