如果你想做硬件程序员,必然会遇到进制转换,转换前需要对基础知识做一个底层逻辑的理解。 大家都知道在程序或者是在最初的时候,计算机是识别二进制的,就是汇编编程的时候。 字,字节,比特,位之间的关系。 常见的计算机有32位,64位,这些就是说计算机一次性处理数据的能力,一位就是一比特。
一个字节是8比特。就是8位。 想等于2进制用0/1表示位, 一个字节是8位 11111111, 那么16进制用二进制表示,就是2进制怎么表示0-15数,1111 这就是8+4+2+1=15,因此4位表示一个16进制,8位表示2个16进制,因此16进制协议都是2个字节。 其实高低位获取是针对两个事情: 1 16位的是前八位为高位,后八位为低位 高八位取值是方式是:先后移8位,然后位与&0XFF, 低八位的取值,直接位与&0XFF
2 8位的是前四位为高位,后四位为低位 前4位的取值是位于&0XF0,后四位的是位于&0X0F
位于的核心是取值,确定这个值是多少。 然后用这个值来确定和协议里面的内容是否一致。
因为ff刚好是1111111 0x代表的是什么呢?他代表的是16进制的前缀符号,表示这个是一个16进制的数字,不是10进制的。