2016-11-19 117 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); 
相关问题