找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于C语句写法的疑问

查看数: 742 | 评论数: 6 | 收藏 3
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-2-16 17:22

正文摘要:

各位大神,我是个小白,在其他大神程序里看到这样的写法,有些不太明白,如下图 其中这句TMOD &= ~(1<<6);//Timer1 set As Timer, 中的(1<<6);意思是把01h左移6位,由二进制数0000 0001变为0100 ...

回复

ID:879809 发表于 2022-2-18 22:10
一旦你看懂了,就知道这种写法非常直观容易理解。
ID:514901 发表于 2022-2-18 09:20
1<<6可以轻松知道对数据的第六位进行操作,但是你写0x40虽然大家也看得懂,但是得在脑海中转化一下吧,看程序时转化几个可能没问题,但多了可能就会烦也容易出错。有大佬说过,当你能像读文章那样轻松阅读一份代码时,不一定是你的编程能力提升了,可能是编写这份代码的人有着深厚的功底!增加程序可读性是非常重要的,所以应该学着养成这种习惯。
ID:429003 发表于 2022-2-18 08:30
主要是看起来直观,方便后期维护代码时,一眼能明白这么操作的目的。TMOD &= ~(1<<6);  将寄存器TMOD的位BIT6置为零。只是每个人的程序抒写风格问题。
ID:824490 发表于 2022-2-17 09:08
1<<6是直接位赋值,意思是把bit6置为“1“,其它位不变,不是楼主你所说的是"移位":
ID:290373 发表于 2022-2-16 20:09
1<<6操作的哪一位看起来很直观,如果是一个数值的话还得多想一下拐个弯
ID:311903 发表于 2022-2-16 19:41
看着芯片寄存器手册,就很清楚了,配置寄存器哪个位为0或1,两种写法原理都是一样

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表