C语言中的(uint32)1<<10 是什么意思?

谢谢Jseven_jy等各位。象以下这种宏定义有什么优势之处?#definexxxCLK(uint32)1<<10#definexxxDOUT(uint32)1<<6... 谢谢Jseven_jy等各位。象以下这种宏定义有什么优势之处?
#define xxxCLK (uint32)1<<10
#define xxxDOUT (uint32)1<<6
展开
 我来答
爱教育爱学习
高粉答主

2019-12-11 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112734

向TA提问 私信TA
展开全部

C语言中的(uint32)1<<10意思无符号32位整型量 1,向左移10位。

c语言中uint是共用体类型结构,在结构中各成员有各自的内存空间,一个结构体变量的总长度大于等于各成员长度之和。而在“联合”中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度。

联合类型的定义和联合变量的说明:一个联合类型必须经过定义之后,才能把变量说明为该联合类型。

扩展资料

uint联合类型的定义:

union 联合名

{

成员表

};

成员表中含有若干成员,成员的一般形式为: 类型说明符 成员名

成员名的命名应符合标识符的规定。

例如:

union perdata

{

int Class;

char Office;

};

意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
L_o_o_n_i_e
推荐于2017-09-21 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5217万
展开全部
(uint32)1<<10 -- 无符号32位整型量 1,左移10位。

这种宏定义优点 是
xxxCLK,xxxDOUT 名字一目了然,编写程序的人,一看就知道它的 数学和物理 意思,
(uint32)1<<10 一看,就知道 右起 第11位 是 1,其余 位是 0
(uint32)1<<6 一看,就知道 右起 第7位 是 1,其余 位是 0

这种写法有可能有负作用,如果我写则用 #define xxxCLK ( (uint32)1<<10)
或干脆写
#define xxxCLK 0x0400
#define xxxDOUT 0x0040
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天云小店
推荐于2017-09-25 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:783万
展开全部
(uint32)1<<10表示将无符号32位整型数1左移10位。

具体的操作方法如下:
1的二进制数为:0000 0000 0000 0000 0000 0000 0000 0001
1<<10运算后变为:0000 0000 0000 0000 0000 0100 0000 0000 对应十进制的1024
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jseven_jy
2011-01-24 · TA获得超过8122个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1133万
展开全部
左移操作

1有二进制: 00000000 00000000 00000000 00000001
左移10位之后变成: 00000000 00000000 00000100 00000000
结果就从1变成了2的10次方,即1024

#define xxxCLK (uint32)1<<10
#define xxxDOUT (uint32)1<<6
这两句是宏定义,也就是说再下面的程序中出现的xxxCLK表示的是 (uint32)1<<10
同样,xxxDOUT表示的是 (uint32)1<<6

好处是一改全改。。。。如果你需要修改这个参数或者变量的值。。。你只需要在#define xxxCLK (uint32)1<<10
这个地方改就可以了。。。不用到程序里面去改。。。

如果不用宏定义的话。。。你需要把程序里面每个出现的位置都修改。。。容易漏掉。。。也比较麻烦。。。

希望能帮到你。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
staryy
2011-01-24 · TA获得超过169个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:134万
展开全部
左移操作,把二进制的1左移10位,相当于2的10次方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式