整型数据转换二进制数据的技巧知识点:
该技巧比较适合应用在51单片机寄存器的配置方面;减少了我们的计算量。
思路——>我们比较习惯直接的整型数据;当我们需要配置寄存器,这时能不能直接利用该数据作为我们配置寄存器的数据呢?这过程需要将数据转换,例如将一个int 型 11110111 转换成 0xf7 该如何做到呢?
此时可以利用到##在C语言中的粘合作用,具体百度。
一, #define Bin(n) LongToBin(0x##n##l) //注意该处l是L的小写,而不是1。
此时使用时11110111则变为十六进制的0x11110111 而在此之前应先定义LongToBin(n)
二, #define LongToBin(n) \
( \
( ( n>>21) & 0x80 )|\
((n >> 18) & 0x40) | \
((n >> 15) & 0x20) | \
((n >> 12) & 0x10) | \
((n >> 9) & 0x08) | \
((n >> 6) & 0x04) | \
((n >> 3) & 0x02) | \
((n ) & 0x01) \
)
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』