系统粉 > 电脑问答 > 其他问答

已解决学c语言遇到瓶颈了

提问者:渐远的青春x  |  浏览次  |  提问时间:2017-02-08  |  回答数量:7

学c语言遇到瓶颈了 getbits(x,p,n)函数,它返回x中从右边数第p位开始向右数n位的字段。这里假定最右边的一位为第0位,这个函数是这么定义的unsinged getbits (unsigned x, int p, int n){return (x>>(p+1-n)) & ~(~0<<n);}请问return这一段什么意思,一点也看不懂,书上说的不清楚,希望得到详细的解释,谢谢,我已经被这个问题困扰很久了

已有7条答案
灵魂到彼岸去

灵魂到彼岸去

回答数:182  |  被采纳数:34

返回(x>>(p+1-n)) & ~(~0<<n)的值
(x>>(p+1-n)) & ~(~0<<n)的意思是x右移p+1-n位,然后再跟~(~0<<n)进行与运算,其中~(~0<<n)表示0做非运算后左移n,然后再做一次非运算。
2017-02-09 00:35:46
赞 18
zhonglizh

zhonglizh

回答数:142  |  被采纳数:130

不是阿,这些符号的意思我知道的,只是他是怎么达到这个函数的效果的,不懂得,,顺便问下这里的x,o,到底是什么进制啊,假设x是10,具体步骤又是怎么样的呢
2017-02-09 04:27:10
赞 14
泼妇老师

泼妇老师

回答数:132  |  被采纳数:72

x右移后高位变成0,0做非运算后变成0xFFFFFFFF,左移后把右边的N位变成0,其它的还是1,再做一次非运算0变成1,1变成0,最后做与运算把X中对应右边同一位是0的都变成0,其它的还保留。
2017-02-09 01:55:21
赞 13
七厘米海岸_

七厘米海岸_

回答数:120  |  被采纳数:61

这个学的深,是要考二级的么?
还是从事C开发的呢?
2017-02-09 03:44:14
赞 12
那那薇儿

那那薇儿

回答数:149  |  被采纳数:29

自学的,看到那里卡住了
2017-02-09 02:33:34
赞 14
小志453

小志453

回答数:54  |  被采纳数:57

二级估计没这么难的 [s:469]

数学运算,拿个数你去具体算一下,最好理解
光看不动=不懂

个人意见
2017-02-09 04:15:06
赞 5
薄荷烟花凉0

薄荷烟花凉0

回答数:192  |  被采纳数:70

我学C的时候,位移只是简单的一带而过..... [s:479]
2017-02-09 11:44:45
赞 19
相关问答
最新其他问答
解决方法