-2
我正在尋找將二進制整數表示轉換爲字符串。我不允許使用按位操作。 當我將十進制整數值轉換爲整數二進制表示形式時,我可以將數字放入一個字符串中並反轉,但我正在尋找更優雅的方式。如何將二進制int轉換爲字符串?
任何想法?
我正在尋找將二進制整數表示轉換爲字符串。我不允許使用按位操作。 當我將十進制整數值轉換爲整數二進制表示形式時,我可以將數字放入一個字符串中並反轉,但我正在尋找更優雅的方式。如何將二進制int轉換爲字符串?
任何想法?
如果您不能使用按位運算符只是除以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);
實際上,所有數字在CPU級別均以二進制表示,意味着當您輸入'int a = 5'時,'a'的值被視爲'101'。除非你提供一個例子,否則這個問題並不清楚。 – ThunderWiring
你很困惑。整數不是二進制(或八進制或十進制)。它可以用二進制(或八進制)或英文表示(例如'five'與二進制的'0b101'相同,或者十進制的'5')。 –