編寫程式,取整數的二進位制的低八位,並顯示其對應的十進位制數。如乙個十進位制整數2010,它的二進位制是11111011010b,它的低八位是11011010b,轉換為十進位制是218。
程式執行結果如下:
輸入:2010
輸出:分析:
還是以十進位制整數2010為例吧,它的二進位制數為11111011010b,如果要取該數的低八位,需要用到邏輯與運算。我們知道,與運算的規則是 0&0=0 0&1=0 1&0=0 1&1=1,只有當相與的位都為1時結果才為1。所以要提取它的低八位,只需要該數與上1111111b(即十六進製制的0xff)。2010二進位制為11位,與運算時11111111b位數不足,高位自動補零湊足11位,成為00011111111b11111011010
與 00011111111
--------------------------
00011011010
結果為00011011010,即11011010b,即218
因此cout<<(i&0x0ff)<#includeusing namespace std;
int main()
聊聊迴圈的小套路 取乙個變數代表乙個事件
當我們要解決一些問題時,碰到的並不都是能輕易驗證為真的問題 譬如我們想要求一定範圍內的素數,運用迴圈結構,只有在最後乙個迴圈執行完之後,我們才能夠真正判定,這個數確實是素數。再比如在鞍點問題中,我們只有在一行的迴圈都走完之後,我們才能下結論說 這一行的鞍點不存在。於是在更加複雜的巢狀迴圈中,似乎尋找...
輸入乙個整型變數,求它二進位制位中含有1的個數
1 這種方法雖然簡單,但是存在明顯缺陷,當輸入的數為負數時,顯然結果不正確。include int main num num 2 printf count d n count return 0 2.按位與 操作符,兩數二進位制序列同位同一出一,其餘出零.拿這個數與一按位與,這樣就可以判斷哪一位為一,...
如何輸出乙個整型數的每一位(判斷技巧解析)
要求 輸入乙個正整數,然後分別輸出它的每一位數。難點 一般我們會採用while迴圈的方式進行迴圈判斷,然後輸出。迴圈條件為該整數每次進行除以10的運算之後是否商為0,即while n 10 0 但是在迴圈體內,最後一步是要對該整數進行除以10求商的操作,這一步在當該數小於10的整數時,求商結果為0,...