1、十进制转换成二进制
#include <stdio.h>
#include <stdlib.h>
#define MAXBITS 100
int main()
{
int inputNumber;
int re;
int bits[MAXBITS];
int j;
int i = 0;
printf("\t\tConverter decimal --> binary\n\n");
//用户输入一个十进制数
printf("\nenter a positive integer number: ");
scanf("%d", &inputNumber);
if (inputNumber < 0)
{
printf("only positive integers >= 0\n");
return 1;
}
while (inputNumber > 0)
{
re = inputNumber % 2;
inputNumber = inputNumber / 2;
bits[i] = re;
i++;
}
printf("\n the number in binary is: ");
for (j = i - 1; j >= 0; j--)
{
printf("%d", bits[j]);
}
if (i == 0)
{
printf("0");
}
return 0;
}
测试结果:
Converter decimal --> binary
enter a positive integer number: 100
the number in binary is: 1100100
2、十进制转换成十六进制
#include <stdio.h>
void decimal2Hexadecimal(long num);
int main()
{
long decimalnum;
printf("Enter decimal number: ");
scanf("%ld", &decimalnum);
decimal2Hexadecimal(decimalnum);
return 0;
}
void decimal2Hexadecimal(long num)
{
long decimalnum = num;
long quotient, remainder;
int i, j = 0;
char hexadecimalnum[100];
quotient = decimalnum;
while (quotient != 0)
{
remainder = quotient % 16;
if (remainder < 10)
hexadecimalnum[j++] = 48 + remainder;
else
hexadecimalnum[j++] = 55 + remainder;
quotient = quotient / 16;
}
for (i = j; i >= 0; i--)
{
printf("%c", hexadecimalnum[i]);
}
printf("\n");
}
测试结果:
Enter decimal number: 100
64
3、十进制转换成八进制
#include <stdio.h>
void decimal2Octal(long decimalnum);
int main()
{
long decimalnum;
printf("Enter the decimal number: ");
scanf("%ld", &decimalnum);
decimal2Octal(decimalnum);
return 0;
}
void decimal2Octal(long decimalnum)
{
long remainder, quotient;
int octalNumber[100], i = 1, j;
quotient = decimalnum;
while (quotient != 0)
{
octalNumber[i++] = quotient % 8;
quotient = quotient / 8;
}
for (j = i - 1; j > 0; j--) printf("%d", octalNumber[j]);
printf("\n");
}
测试结果:
Enter the decimal number: 100
144
【欢迎关注编码小哥,学习更多实用的编程方法】