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

:L

电子write_cai 发表于 2011-6-18 12:01

今天查找一下,应该是这样的:在变量的前12位赋值92,前4位赋值1,最后一位为1.
softerchang 发表于 2011-6-14 20:43 https://bbs.21ic.com/images/common/back.gif真的是这样理解的吗

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
页: [1]
查看完整版本: 请教一个移位问题