国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

位運算實現(xiàn)十進制轉(zhuǎn)換為二進制

2020-01-26 15:09:22
字體:
供稿:網(wǎng)友

代碼如下:

復(fù)制代碼 代碼如下:

 #include <iostream>        //將十進制數(shù)轉(zhuǎn)化為二進制數(shù),位運算的取位操作
 using namespace std;
 int main()
 {
        unsigned short i;
        cout << "請輸入一個小于65536的正整數(shù)" << endl;
        cin >> i;
        for(int j=15; j >= 0; j--)
        {
               if ( i & ( 1 << j) ) cout << "1";
               else cout << "0";
        }
        cout << endl;
     return 0;
 }

分析:

      分析一下這個程序的算法原理,順便復(fù)習(xí)一下位運算的奇妙吧。
      這是一個將無符號十進制數(shù)轉(zhuǎn)化為標(biāo)準(zhǔn)16位二進制數(shù)的程序。
      程序的主體部分,for語句從15遞減到0,一共16次對二進制數(shù)的每一位的判斷作操作。循環(huán)體內(nèi)部的條件判斷用到了位運算中的&運算(與運算)和<<運算(左移運算)。<<運算表示把1的二進制形式整體向左移j位,左移后低位補0,移出的高位部分被舍棄。例如,當(dāng)j為15時,表達式(1<<j)的值為1000000000000000;當(dāng)j為10時,值為0000010000000000。
      所以i&(1<<j)的值相當(dāng)于把i的二進制的第j位取出來(i的第j位與(1<<j)的第j位(由上述可以,為1)作與運算,只有當(dāng)i的第j位為1時值為真)。循環(huán)后既得i的二進制形式。
      有的童鞋可能覺得用mod(取余)運算照樣可以達到效果,但是位運算的“個性”就決定了它直接對數(shù)據(jù)的二進制形式進行操作的快捷性(一般計算機的數(shù)據(jù)存儲基本形式為二進制形式),兩個相同算法的程序,用了位運算后會使程序速度上有提高。

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 色达县| 维西| 阿克苏市| 平遥县| 巴塘县| 临潭县| 通海县| 盐城市| 资阳市| 巴林左旗| 孝昌县| 原阳县| 朝阳市| 格尔木市| 香格里拉县| 堆龙德庆县| 金阳县| 德清县| 柳林县| 尼玛县| 两当县| 社会| 天津市| 长汀县| 富阳市| 襄樊市| 陇川县| 保亭| 辽宁省| 驻马店市| 蕉岭县| 抚宁县| 西昌市| 丽江市| 屯门区| 烟台市| 且末县| 阿合奇县| 北安市| 永登县| 鄂尔多斯市|