请教一个移位问题

[复制链接]
2122|7
 楼主| softerchang 发表于 2011-6-13 20:09 | 显示全部楼层 |阅读模式
U32 mpll_val = 0 ;   
mpll_val = (92<<12)|(1<<4)|(1); 这句话怎么解释?请各位大侠赐教。
delin17 发表于 2011-6-14 11:34 | 显示全部楼层
直接用语法翻译过来不就是了..
 楼主| softerchang 发表于 2011-6-14 20:43 | 显示全部楼层
今天查找一下,应该是这样的:在变量的前12位赋值92,前4位赋值1,最后一位为1.
hgjinwei 发表于 2011-6-15 12:29 | 显示全部楼层
电子write_cai 发表于 2011-6-18 12:01 | 显示全部楼层
今天查找一下,应该是这样的:在变量的前12位赋值92,前4位赋值1,最后一位为1.
softerchang 发表于 2011-6-14 20:43
真的是这样理解的吗
joyme 发表于 2011-6-23 16:29 | 显示全部楼层
应该是31-12位赋值92,11-4位赋值1,3-0位赋值1
或理解为将92换成16进制,那么可以对应位赋值啦

|(1<<n)就是第n位赋1
bnyuli 发表于 2011-6-28 15:09 | 显示全部楼层
理解形式能有几种就有几种
ruiwei0201 发表于 2011-6-30 17:27 | 显示全部楼层
本帖最后由 ruiwei0201 于 2011-6-30 17:28 编辑

用笔从左至右依次写出32位
mpll_val = 00000000 00000000 00000000 00000000b
92 = 5CH = 01011100b
92 << 12 = 01011100 0000 00000000b
1 << 4 = 10000b
mpll_val = (92 << 12) | (1 << 4) | (1) = 00000000 0000 01011100 0000 00010001b
您需要登录后才可以回帖 登录 | 注册

本版积分规则

83

主题

328

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部