程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 10進制數轉二進制表示

10進制數轉二進制表示

編輯:C++入門知識

本篇是用算法自己實現10進制整數轉換成二進制數。注意,這裡是研究的一般的二進制轉換規律,不一定所有系統一定是這樣表示的。 邏輯上,如果將10進制數5用一個字節表示,應該是101,你可以通過000開始不斷加1,得到這個數。但是實際上一般都采用除法計算。 5 / 2     得到商為 2 余數為1 用商2 / 2,    得到商為1 余數為0 用商1 / 2    得到商為0 余數為1   逆序將余數(最後得到的余數放在高位)連在一起就是 101. 這個算法用遞歸可以實現: [cpp]  // Convert decimal integer in one byte to binary format string   string ByteToBinaryString(char v) {       if (v == 1) {           return "1";        }              if (v % 2 == 0) {           return ByteToBinaryString(v / 2) + "0";       } else {           return ByteToBinaryString(v / 2) + "1";       }   }   ByteToBinalyString實現存儲在一個字節中的10進制整數轉換成二進制表達的字符串的功能。 每次調用ByteToBinalyString,都先計算自己除以2的商和余數,用商繼續遞歸調用自己。將余數接在下一個遞歸函數的返回值的後面,這樣就實現了逆序。 出口在商為1的時候,這時候再用1調用自己時,直接返回“1”。 測試了一下,基本上在正數的時候沒問題,如果是0呢,出現了錯誤。因為遞歸變成了無限,沒有出口。所以還要加點代碼,保證直接傳遞0為參數時,程序也能正常工作。 [cpp]  // Convert decimal integer in one byte to binary format string   string ByteToBinaryString(char v) {       if (v == 1) {           return "1";        }              if (v == 0) {           return "0";       }              if (v % 2 == 0) {           return ByteToBinaryString(v / 2) + "0";       } else {           return ByteToBinaryString(v / 2) + "1";       }   }     現在考慮char的值小於0的情況。   顯然這個程序還需要修改。    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved