国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 长岛县| 新晃| 广平县| 页游| 监利县| 资源县| 奉贤区| 儋州市| 通许县| 皋兰县| 上林县| 从江县| 务川| 南安市| 尉氏县| 孟村| 东台市| 定州市| 锡林浩特市| 南江县| 郎溪县| 古浪县| 镇雄县| 绥芬河市| 津南区| 周宁县| 宜城市| 五家渠市| 吉木萨尔县| 唐海县| 镇安县| 关岭| 滨州市| 新宁县| 江西省| 沙田区| 喀什市| 德令哈市| 牡丹江市| 图们市| 南川市|