就酱吧 发表于 2017-8-29 11:12:01

C语言的逻辑左移

((ox3F<<2)<<16)|(ox3F<<2);
((ox3F<<2)<<16)|(ox00<<2);
这两个语句什么意思啊

ba21 发表于 2017-8-29 11:22:52

1,你确定是 字母o; ox3f?????????????????????
2,如果是0x3f是十六进制的表示形式,也就是3f 那么转换成2进制是111111
3,0x3f << 2 也就是 111111 << 2也就是 11111100
4,(0x3f << 2) << 16 也就是 111111000000000000000000= 0xFC0000

就酱吧 发表于 2017-8-29 13:09:08

ba21 发表于 2017-8-29 11:22
1,你确定是 字母o; ox3f?????????????????????
2,如果是0x3f是十六进制的表示形式,也就是3f 那么转换成 ...

嗯嗯是o.这条语句是这样的//PWM output port is Hi-z(P1_2 - P1_7)
        {               
                u4 t_PMSR1        = (((0x3F)<<2)<<16) | (0x3F<<2);        /* PM1_2- PM1_7input mode   */
                u4 t_PMCSR1        = (((0x3F)<<2)<<16) | (0x00<<2);    /* PMC1_2 - PMC1_7 Port mode    */

                PORT.PMSR1.UINT32        = t_PMSR1;
                PORT.PMCSR1.UINT32        = t_PMCSR1;       
        }
但是不懂是什么意思?
页: [1]
查看完整版本: C语言的逻辑左移