请教一个移位问题
U32 mpll_val = 0 ;mpll_val = (92<<12)|(1<<4)|(1); 这句话怎么解释?请各位大侠赐教。 直接用语法翻译过来不就是了.. 今天查找一下,应该是这样的:在变量的前12位赋值92,前4位赋值1,最后一位为1. :L 今天查找一下,应该是这样的:在变量的前12位赋值92,前4位赋值1,最后一位为1.
softerchang 发表于 2011-6-14 20:43 https://bbs.21ic.com/images/common/back.gif真的是这样理解的吗 应该是31-12位赋值92,11-4位赋值1,3-0位赋值1
或理解为将92换成16进制,那么可以对应位赋值啦
|(1<<n)就是第n位赋1 理解形式能有几种就有几种 本帖最后由 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
页:
[1]