如何将二进制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')。 –