十進位制轉二進位制,為什麼要逆序取商

2022-09-02 03:48:18 字數 413 閱讀 3610

雖然大學裡學過數字的進製轉換,但實際的工作中,這方面用到的相對較少,最近看到這類筆試題,不禁心中一冷-----真忘記怎麼轉換了!

拿十進位制轉二進位制來說,為什麼要將除2得到的商倒過來排列呢?使勁想了想,個人得出如下結論:

憑空想像:

二進位制資料的表示特性為,從右向左,每一位表示2的n次方,n是從0開始的,而這個二進位制資料的真正值(以十進位制表示)就是這些「次方」的和。

而乙個十進位制整數能夠被2除的次數,正是這個n次方的n。n肯定是乙個非負整數(0當然也可以)。當n取乙個相對小的可能值時,那麼這時的n次方

就是在二進位制表示法(01序列)中相對靠右的乙個位置,而n取乙個相對較大的可能值時,這時就是在二進位制表示法(01序列)中相對靠左的乙個位置。

所以,正是因為這個道理,十進位制轉二進位制的過程中,要將十進位制整數除以2的商逆序排列。

二進位制轉十進位制

二進位制轉十進位制方法很多,如字元陣列,指標法等 下面用字串函式的方法實現 二進位制轉十進位制 主要用 到 string函式性質及pow求乙個數的n次方的函式過載 by adengou 2010.08.04 win7 dev c 5.0 vs 2010 通過 include include incl...

十進位制轉二進位制

includeint dg unsigned n,int c 注意 引數型別是unsigned int main 陣列全部初始化為0 printf d n sizeof int unsigned temp,u temp u 4294967295u int tu int u printf u u,tu...

十進位制轉二進位制

宣告 最後一種降冪法頗具魅力,而且與方法二有異曲同工之妙 十進位制轉二進位制的幾種方法 輸入 乙個無符號的十進位制整數 輸出 對應十進位制的二進位制顯示 例如 input 10,output 1010 方法一 除二取餘法 forinput 0 cout input 2 input 2 end 輸出順...