回覆列表
-
1 # 手機使用者3503570243
-
2 # 日衝資訊 黃
這麼算有點折騰。可以用遞迴函式。我用虛擬碼來說明一下吧。
DEC2HEX(十進位制數){
sprintf(二進位制數,“%d%s”,十進位制數%2,二進位制數);
if (十進位制數 !=0) {
MoveBit(十進位制數);
}
}
MoveBit(十進位制數){
DEC2HEX(十進位制數/2);
}
-
3 # 管理員賬號
stack<int> v;
while(n)
{
v.push(n%2);
n/=2;
}
while(!v.empty())
{
cout<<v.back();
v.pop();
}
手機打的不知道有沒有啥問題,差不多就這樣吧
你的十進位制數在計算機內部表達是二進位制的。 所以你定義一個整數變數,給這個變數賦值後,在機器記憶體裡就是二進位制數。 你只要用byte方式輸出這個變數地址的記憶體內容就可以了(十六進位制表達)。 如果你一定要用0、1表達,你可以用shift逐個bit位置mask,輸出0、1字串。