请问各位大侠,程序员老手,怎么快速进行二进制十六进制转换的

2019-10-16 02:11发布

问题可能比较初级哈~
小弟新手,在编程的时候遇到比如给寄存器某位置位的时候要换十六进制,比如15、9、7位置位,要在电脑计算器上按半天,还怕搞错位,有没有高效简单的办法啊。。
虽然不是解决不了的问题,但这个对效率和准确性确实比较重要~
知道的给传授下,大家都是怎么弄的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
hefq
2019-10-16 18:29
#define b(dat1,dat2) (unsigned char)(
(0x##dat1##dat2 >>  0 & 1) << 0|
(0x##dat1##dat2 >>  4 & 1) << 1|
(0x##dat1##dat2 >>  8 & 1) << 2|
(0x##dat1##dat2 >> 12 & 1) << 3|
(0x##dat1##dat2 >> 16 & 1) << 4|
(0x##dat1##dat2 >> 20 & 1) << 5|
(0x##dat1##dat2 >> 24 & 1) << 6|
(0x##dat1##dat2 >> 28 & 1) << 7)//模以二进制数据类型


调用
foo=b(1000,0001);//等同于foo=0x81;

16位32位的自己看着改

一周热门 更多>