當前位置:係統粉 > 電腦問答 > 其他問答 > 學c語言遇到瓶頸了

學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

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

zhonglizh

回答數:142  |  被采納數:130

2017-02-09 04:27:10
不是阿,這些符號的意思我知道的,隻是他是怎麼達到這個函數的效果的,不懂得,,順便問下這裏的x,o,到底是什麼進製啊,假設x是10,具體步驟又是怎麼樣的呢
讚 14
潑婦老師

潑婦老師

回答數:132  |  被采納數:72

2017-02-09 01:55:21
x右移後高位變成0,0做非運算後變成0xFFFFFFFF,左移後把右邊的N位變成0,其它的還是1,再做一次非運算0變成1,1變成0,最後做與運算把X中對應右邊同一位是0的都變成0,其它的還保留。
讚 13
七厘米海岸_

七厘米海岸_

回答數:120  |  被采納數:61

2017-02-09 03:44:14
這個學的深,是要考二級的麼?
還是從事C開發的呢?
讚 12
那那薇兒

那那薇兒

回答數:149  |  被采納數:29

2017-02-09 02:33:34
自學的,看到那裏卡住了
讚 14
小誌453

小誌453

回答數:54  |  被采納數:57

2017-02-09 04:15:06
二級估計沒這麼難的 [s:469]

數學運算,拿個數你去具體算一下,最好理解
光看不動=不懂

個人意見
讚 5
薄荷煙花涼0

薄荷煙花涼0

回答數:192  |  被采納數:70

2017-02-09 11:44:45
我學C的時候,位移隻是簡單的一帶而過..... [s:479]
讚 19
解決方法
版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航