位運算實現(xiàn)十進制轉(zhuǎn)換為二進制
更新時間:2015年03月17日 10:09:17 投稿:hebedich
這篇文章主要介紹了位運算實現(xiàn)十進制轉(zhuǎn)換為二進制的相關(guān)資料,需要的朋友可以參考下
代碼如下:
#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ù)習一下位運算的奇妙吧。
這是一個將無符號十進制數(shù)轉(zhuǎn)化為標準16位二進制數(shù)的程序。
程序的主體部分,for語句從15遞減到0,一共16次對二進制數(shù)的每一位的判斷作操作。循環(huán)體內(nèi)部的條件判斷用到了位運算中的&運算(與運算)和<<運算(左移運算)。<<運算表示把1的二進制形式整體向左移j位,左移后低位補0,移出的高位部分被舍棄。例如,當j為15時,表達式(1<<j)的值為1000000000000000;當j為10時,值為0000010000000000。
所以i&(1<<j)的值相當于把i的二進制的第j位取出來(i的第j位與(1<<j)的第j位(由上述可以,為1)作與運算,只有當i的第j位為1時值為真)。循環(huán)后既得i的二進制形式。
有的童鞋可能覺得用mod(取余)運算照樣可以達到效果,但是位運算的“個性”就決定了它直接對數(shù)據(jù)的二進制形式進行操作的快捷性(一般計算機的數(shù)據(jù)存儲基本形式為二進制形式),兩個相同算法的程序,用了位運算后會使程序速度上有提高。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
深入淺析c/c++ 中的static關(guān)鍵字
C++的static有兩種用法:面向過程程序設(shè)計中的static和面向?qū)ο蟪绦蛟O(shè)計中的static。本文重點給大家介紹c/c++ 中的static關(guān)鍵字,感興趣的朋友跟隨小編一起看看吧
2018-08-08
QT實現(xiàn)貪吃蛇游戲
這篇文章主要為大家詳細介紹了QT實現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
2021-05-05
C++深入講解namespace與string關(guān)鍵字的使用
namespace命名空間或者叫名字空間,傳統(tǒng)的c++只有一個全局的namespace,namespace引入了復(fù)雜性。namespace允許像類,對象,函數(shù)聚集在一個名字下。本質(zhì)上講namespace是對全局作用域的細分
2022-05-05
淺談C++ 虛函數(shù)
這篇文章主要介紹了C++ 虛函數(shù)的相關(guān)資料,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下
2020-09-09
C/C++使用Zlib實現(xiàn)文件的壓縮與解壓
zlib 是一個開源的數(shù)據(jù)壓縮庫,旨在提供高效、輕量級的壓縮和解壓縮算法,本文將介紹如何使用 zlib 庫進行數(shù)據(jù)的壓縮和解壓縮,以及如何保存和讀取壓縮后的文件,感興趣的可以了解下
2023-11-11
C語言函數(shù)指針的使用詳解
在C語言中,函數(shù)指針是指向函數(shù)的指針變量,本文主要介紹了C語言函數(shù)指針的使用詳解,具有一定的參考價值,感興趣的可以了解一下
2024-01-01
C++實現(xiàn)聊天小程序
這篇文章主要為大家詳細介紹了C++實現(xiàn)聊天小程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
2021-06-06
Qt正則表達式使用舉例
這篇文章主要給大家介紹了關(guān)于Qt正則表達式使用的相關(guān)資料,Qt中的正則表達式模式匹配功能由QRegExp類實現(xiàn),它完全支持Unicode,并可以應(yīng)用于字符串驗證、搜索、查找替換和分割等場景,需要的朋友可以參考下
2024-02-02
C++帶頭雙向循環(huán)鏈表超詳細解析
帶頭雙向循環(huán)鏈表:結(jié)構(gòu)最復(fù)雜,一般用在單獨存儲數(shù)據(jù)。實際中使用的鏈表數(shù)據(jù)結(jié)構(gòu),都是帶頭雙向循環(huán)鏈表。另外這個結(jié)構(gòu)雖然結(jié)構(gòu)復(fù)雜,但是使用代碼實現(xiàn)以后會發(fā)現(xiàn)結(jié)構(gòu)會帶來很多優(yōu)勢,實現(xiàn)反而簡單
2022-03-03