c 十進位制二進位制(初學教程)

2021-10-10 13:40:55 字數 1341 閱讀 4208

假設有乙個二進位制數10110011,那表示的十進位制為:178

從最低位(最右)算起,位上的數字乘以本位的權重,權重就是2的第幾位的位數減一次方。

比如第2位就是2的(2-1次)方,就是2;第8位就是2的(8-1)次方是128。把所有的值加起來。

這是非常容易的。

重點在這!!!(敲黑板)

都知道除二取餘,然後倒序排列,高位補零:

貼個圖。(侵刪)

倒序排列的原因

假設有乙個十進位制數43,如何轉換?

轉換成功!

根據這個原理,我們很容易寫出下面c++的十進位制轉二進位制程式:

#include #include using namespace std;

int n;

int ans[100];

int len = 0;

int main()

for(int i=len-1;i>=0;i--)

return 0;

}

因而,有道題【csp-j-2020】優秀的拆分:

因為是初學教程,所以就用普通格式來寫:

#include #include #include using namespace std;

int n;

int ans[100];

int len = 0;

int main()

for(int i=len-1;i>=0;i--)

} } return 0;

}

功能簡潔

noip官方編譯器

缺點:功能並不完善

不適合商業開發dev-c++

面向人群:c++初學者

dev-c++現在已經更名為smart-c++,但noip不使用該編譯器】(貼的,侵刪)

初級教程,偏簡單。

如有疏漏、錯誤之處,還請指正。

十進位制轉二進位制(C

十進位制轉換二進位制其實不是個複雜的問題,我們首先搞清楚原理 整數部分 如果不是0,不斷除2,直到除到1為止,得到的餘數最後逆向排列輸出 如果是0,直接輸出 小數部分 小數部分m非0,則不斷乘2,如果2 m超過1,則輸出1,m 2 m 1 如果2 m不超過1,m 2 m 由於很多小數是無法完全轉換為...

十進位制轉二進位制(C )

相信大家應該都知道,十進位制轉k進製的方法常用的就是除k取餘的方法,這裡針對這個方法,給出了c 的 需要注意的是,除二取餘的方法,對於餘數的選取是從後往前取的,所以在 中,也要解決這個問題才行。模仿不停地除2的過程,每次除2之後用 取餘數i 用 作為下一次除2的被除數temp j初始化為1,每次除了...

二進位制轉十進位制(C )

輸入八位二進位制資料轉成十進位制 思想 逐位讀入輸入的八位二進位制,判斷該位是否為 1 若為1,則該位值為2的 i 次方 該位為第 i 位 每位對應值累加結果為所求十進位制 輸入11011010,讀入第乙個資料為1,第七位 從右往左,0到7 對應值為2的7次方即128 第二個資料為1,第六位,對應值...