标题: 简单的C语言程序阅读,3<<4 是3左移四位吗? [打印本页]

作者: 永恒动力    时间: 2021-3-23 11:15
标题: 简单的C语言程序阅读,3<<4 是3左移四位吗?
PINSEL1=OXf0,执行语句 PINSEL1^=(3<<4),则PINSEL1=0X.....?
3<<4 是3左移四位吗?解答请详细些,我还是小白!

作者: YJGG    时间: 2021-3-23 14:32
你要求别人给你讲详细,多打字,而谢谢两个字你却不愿多打
作者: albert01    时间: 2021-3-23 14:49
对的,后面的位补0,即0x00110000
作者: 永恒动力    时间: 2021-3-23 15:11
YJGG 发表于 2021-3-23 14:32
你要求别人给你讲详细,多打字,而谢谢两个字你却不愿多打

谢谢你 ,求告诉
作者: zsw3721    时间: 2021-3-23 15:28
C0
是的
作者: MirrAKe    时间: 2021-3-23 15:56
这种问题百度能搜的出来啊!以后遇到问题先百度,想办法自己解决,实在不行再求助,0003<<4 =0300
作者: 天ノ忆    时间: 2021-3-23 16:19
本帖最后由 天ノ忆 于 2021-3-24 09:40 编辑
MirrAKe 发表于 2021-3-23 15:56
这种问题百度能搜的出来啊!以后遇到问题先百度,想办法自己解决,实在不行再求助,0003

3》4是 110000
作者: aygc    时间: 2021-3-23 17:34
这个左移是转换成二进制左移的,3前面没有前缀,默认是十进制,要把3转换成二进制再移位
作者: 永恒动力    时间: 2021-3-24 14:06
MirrAKe 发表于 2021-3-23 15:56
这种问题百度能搜的出来啊!以后遇到问题先百度,想办法自己解决,实在不行再求助,0003

百度上面没有
作者: 永恒动力    时间: 2021-3-24 14:14
aygc 发表于 2021-3-23 17:34
这个左移是转换成二进制左移的,3前面没有前缀,默认是十进制,要把3转换成二进制再移位

PINSEL1=1111 0000 (转换成二进制)
PINSEL1^=(3<<4) 其中,3转换成二进制是11,即0011 0000 ,然后再左移四位,为0000 0000 。这个值再跟PINSEL1 异或运算,那PINSEL1 的值还是不变的 ,不知到我说的对不对,谢鞋你,求告知!!
作者: 永恒动力    时间: 2021-3-24 14:50
永恒动力 发表于 2021-3-24 14:14
PINSEL1=1111 0000 (转换成二进制)
PINSEL1^=(3

我好像会了,答案是0xco 对吗 ?谢谢你,求告知
作者: ANT1987    时间: 2021-3-24 15:58
PINSEL1=PINSEL1^(3<<4)=0xf0^(0x03<<4)=1111 0000^(0000 0011<<4)=1111 0000^0011 0000
所以等于:1100 0000 (即0xC0)
作者: 小悬    时间: 2021-3-24 17:22
是0xc0

作者: keliandexiaowa    时间: 2021-3-26 15:11
向将3用16进制表示出来,然后将非0位左移4位




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1