2016-11-19 68 views
-2

我正在尋找將二進制整數表示轉換爲字符串。我不允許使用按位操作。 當我將十進制整數值轉換爲整數二進制表示形式時,我可以將數字放入一個字符串中並反轉,但我正在尋找更優雅的方式。如何將二進制int轉換爲字符串?

任何想法?

+1

實際上,所有數字在CPU級別均以二進制表示,意味着當您輸入'int a = 5'時,'a'的值被視爲'101'。除非你提供一個例子,否則這個問題並不清楚。 – ThunderWiring

+0

你很困惑。整數不是二進制(或八進制或十進制)。它可以用二進制(或八進制)或英文表示(例如'five'與二進制的'0b101'相同,或者十進制的'5')。 –

回答

3

如果您不能使用按位運算符只是除以2,檢查提醒,你並不需要,如果你使用一個固定的大小(即32)扭轉串,像:

/* Only for positive numbers */ 

char bin[] = "00000000000000000000000000000000"; 
int count = 31, num = 25; 

while (num) { 
    if (num % 2) bin[count] = '1'; 
    num /= 2; 
    count--; 
} 
printf("%s\n", bin); 
相關問題