找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2169|回复: 13
打印 上一主题 下一主题
收起左侧

C语言i=(0x21&0x80);有人能给解惑吗?谢谢

  [复制链接]
跳转到指定楼层
楼主
ID:493146 发表于 2021-1-25 20:49 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
i=(0x21&0x80);
i是取字节还是取位?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:390416 发表于 2021-1-25 23:35 | 只看该作者
这个问题 得看情况,如果变量是8位 就是字节。如果i是bit位 那就是取最高位。但是 不一定每种单片机都有可以bit
回复

使用道具 举报

板凳
ID:282850 发表于 2021-1-26 00:42 | 只看该作者
0x21&0x80是按位与,是b 0010 0001  & 1000 000 =0,i是字节,除非定义为位变量
回复

使用道具 举报

地板
ID:880562 发表于 2021-1-26 09:16 | 只看该作者
0x21&0x80运算是按位与,即0010 0001  & 1000 000 =0000 0000,然后再看i是定义为什么类型,来决定是取字节还是位
回复

使用道具 举报

5#
ID:752974 发表于 2021-1-26 09:53 | 只看该作者
i是字节,在C51中可以取位,i要定义成位变量,i=(bit)(0x21&0x80);i中就是位了。
回复

使用道具 举报

6#
ID:556568 发表于 2021-1-26 10:17 | 只看该作者
看你的定义 0x21是  0010 0001,0x80是1000 0000然后按位与
回复

使用道具 举报

7#
ID:880597 发表于 2021-1-26 10:51 | 只看该作者
这个是按位与,然后看具体i的类型是字节还是位
回复

使用道具 举报

8#
ID:407701 发表于 2021-1-26 14:53 | 只看该作者
主要看定义时i的类型
回复

使用道具 举报

9#
ID:493146 发表于 2021-1-26 23:47 | 只看该作者
谢谢各位!受教了
回复

使用道具 举报

10#
ID:883031 发表于 2021-2-24 10:01 | 只看该作者
基础的东西
回复

使用道具 举报

11#
ID:839835 发表于 2021-2-25 15:27 | 只看该作者
代码附上看看,i=(0x21&0x80);i=0;都清零了
回复

使用道具 举报

12#
ID:879537 发表于 2021-2-27 15:25 | 只看该作者
运算按位与  0x21=0b0010 0001
回复

使用道具 举报

13#
ID:462827 发表于 2021-2-27 17:26 | 只看该作者
一般这样的代码,是为了检测一个字节的最高位是0还是1的,不过,代码要结合上下文才可以有具体的意义。
回复

使用道具 举报

14#
ID:475247 发表于 2021-2-27 17:40 | 只看该作者
位运算而己,多看看基础
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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