[英]How to convert a binary number to a two-digit decimal number in C
我需要将二进制数字转换为两位十进制数字。 例如:
01111 becomes 15
00011 becomes 03
我不是简单地尝试显示数字。 我需要将每个数字放入一个int变量中。 说我有两个int变量,leftnum和rightnum。
然后在第一个示例中,leftnum = 1和rightnum =5。在第二个示例中,leftnum = 0和rightnum = 3。
有两个限制使得这有点困难。 mod和/只能与2的幂一起使用。
int i = 0;
do {
i ++;
} while (i * 10 <= originalInt);
int leftInt = i - 1; // e.g. for "originalInt = 40" -> "i = 5", so we must decrement 1
int rightInt = originalInt - leftInt * 10;
或更紧凑,使用更少的变量:
int leftInt = 0;
do {leftInt ++;} while (leftInt * 10 <= originalInt);
int rightInt = originalInt - (-- leftInt) * 10;
#include <stdio.h>
int main()
{
int i = 23;
int left, right;
right = i;
left = 0;
while(right > 9) {
right -= 10;
left += 1;
}
printf("%d %d\n", left, right);
}
要么
#include <stdio.h>
int main()
{
int i, left, right;
for(i = 0; i < 100; i++) {
left = ((i+1)*51) / 512;
right = i - (left*10);
printf("%d %d %d\n", i, left, right);
}
}
这是英文的一般程序:
将数字转换为十进制,即C的int类型(如果位字符串由字符串表示),否则跳过此步骤。
使用sprintf获取int的十进制表示形式。
您可以从字符串中选择每个字符,并根据require int存储相应的数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.