编写一个函数:输入一个10进制整数,输出相应的5进制数。
一次性帮你彻底解决问题!
2-16任意进制转换通用程序。输入一个10进制数,输出它的2-16进制数。
#include
#include
#define M sizeof(unsigned int)*8
int trans(unsigned n, int d, char s[])/* 函数trans将无符号整数n翻译成d(2<=d<=16)进制表示的字符串s */
{
static char digits[] ="0123456789ABCDEF"; /* 十六进制数字的字符 */
char buf[M+1];
int j, i = M;
if(d16)
{
s[0]='\0'; /* 不合理的进制,置s为空字符串 */
return 0; /* 不合理的进制,函数返回0 */
}
buf[i]='\0';/* 这个是关键,它不但是字符串的结束标志,也是(s[j]=buf[i])!='\0'结束的条件 */
do
{
buf[--i]=digits[n%d]; /*译出最低位,对应字符存入对应工作数组中*/
n/=d;
}while(n);
/* 将译出在工作数组中的字符串复制到s */
for(j=0;(s[j]=buf[i])!='\0';j++,i++);
/* 其中控制条件可简写成s[j]=buf[i] */
return j;
}
/* 主函数用于测试函数 trans() */
int main()
{
unsigned int num;
int i,scale[]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; /* 如果只需要2,4,8,16进制转换,去掉其它数字 */
char str[33];
system("cls");
printf("Please input an unsigned digit:
");
scanf("%u",&num);
for(i=0;i<sizeof(scale)/sizeof(scale[0]);i++)
{
if(trans(num,scale[i],str))
printf("%5d = %s(%d)
",num,str,scale[i]);
else
printf("%5d => (%d) Error!
",num,scale[i]);
}
system("pause");
return 0;
}
#include
void f(int n)
{
if(n) f(n/2);
else return;
printf("%d",n%2);
}
int main()
{
int n;
while(1)
{
scanf("%d",&n);
if(n<0) break;
if(n==0) printf("0");
f(n);
printf("
");
}
return 0;
}
2-16任意进制转换通用程序。输入一个10进制数,输出它的2-16进制数。
程序在dev-c++下调试通过:
#include <stdio.h>
#include <stdlib.h>
#define M sizeof(unsigned int)*8
int trans(unsigned n, int d, char s[])/* 函数trans将无符号整数n翻译成d(2<=d<=16)进制表示的字符串s */
{
static char digits[] ="0123456789ABCDEF"; /* 十六进制数字的字符 */
char buf[M+1];
int j, i = M;
if(d<2||d>16)
{
s[0]='\0'; /* 不合理的进制,置s为空字符串 */
return 0; /* 不合理的进制,函数返回0 */
}
buf[i]='\0';/* 这个是关键,它不但是字符串的结束标志,也是(s[j]=buf[i])!='\0'结束的条件 */
do
{
buf[--i]=digits[n%d]; /*译出最低位,对应字符存入对应工作数组中*/
n/=d;
}while(n);
/* 将译出在工作数组中的字符串复制到s */
for(j=0;(s[j]=buf[i])!='\0';j++,i++);
/* 其中控制条件可简写成s[j]=buf[i] */
return j;
}
/* 主函数用于测试函数 trans() */
int main()
{
unsigned int num;
int i,scale[]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; /* 如果只需要2,4,8,16进制转换,去掉其它数字 */
char str[33];
system("cls");
printf("Please input an unsigned digit:\n");
scanf("%u",&num);
for(i=0;i<sizeof(scale)/sizeof(scale[0]);i++)
{
if(trans(num,scale[i],str))
printf("%5d = %s(%d)\n",num,str,scale[i]);
else
printf("%5d => (%d) Error! \n",num,scale[i]);
}
system("pause");
return 0;
}
有个函数叫 itoa 就能满足你的要求, 更变态的都可以
http://baike.baidu.com/view/982195.htm
一次性帮你彻底解决问题!
2-16任意进制转换通用程序。输入一个10进制数,输出它的2-16进制数。
程序在dev-c++下调试通过:
#include
<stdio.h>
#include
<stdlib.h>
#define
M
sizeof(unsigned
int)*8
int
trans(unsigned
n,
int
d,
char
s[])/*
函数trans将无符号整数n翻译成d(2<=d<=16)进制表示的字符串s
*/
{
static
char
digits[]
="0123456789ABCDEF";
/*
十六进制数字的字符
*/
char
buf[M+1];
int
j,
i
=
M;
if(d<2||d>16)
{
s[0]='\0';
/*
不合理的进制,置s为空字符串
*/
return
0;
/*
不合理的进制,函数返回0
*/
}
buf[i]='\0';/*
这个是关键,它不但是字符串的结束标志,也是(s[j]=buf[i])!='\0'结束的条件
*/
do
{
buf[--i]=digits[n%d];
/*译出最低位,对应字符存入对应工作数组中*/
n/=d;
}while(n);
/*
将译出在工作数组中的字符串复制到s
*/
for(j=0;(s[j]=buf[i])!='\0';j++,i++);
/*
其中控制条件可简写成s[j]=buf[i]
*/
return
j;
}
/*
主函数用于测试函数
trans()
*/
int
main()
{
unsigned
int
num;
int
i,scale[]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
/*
如果只需要2,4,8,16进制转换,去掉其它数字
*/
char
str[33];
system("cls");
printf("Please
input
an
unsigned
digit:\n");
scanf("%u",&num);
for(i=0;i<sizeof(scale)/sizeof(scale[0]);i++)
{
if(trans(num,scale[i],str))
printf("%5d
=
%s(%d)\n",num,str,scale[i]);
else
printf("%5d
=>
(%d)
Error!
\n",num,scale[i]);
}
system("pause");
return
0;
}
“输入一个10进制整数” ? 字符串输入?
输入一个十进制整数,输出其对应的二进制数,用C语言的函数知识。_百度知 ...
#include<stdio.h> int main(){ int i,j,n,m=-1,a[16];printf("请输入十进制数");scanf("%d",&n);while(n!=0){ i=n%2;a[++m]=i;n=n/2;} for(j=m;j>=0;j--)printf("%d",a[j]);return0;} ...
C语言,求解! 编写用户自定义函数,传入一个十进制整数,传回其二进制表示...
include <stdio.h>char *dec2bin(char *x,int n){int i,j; char c; for(i=-1;n;n\/=2) x[++i]=n%2+'0'; x[i+1]=0; for(j=0;j
编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制...
可以参考下面的代码:include <stdio.h> int main(int argc, char* argv[]){ int num;scanf("%d",&num);printf("%o",num);return 0;}
用C++设计一个程序,输入一个十进制整数,输出相应的十六进制数。设计一...
代码文本:char d[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};void convertDecimal2Hex(int num, char* szHex){ szHex[0]=d[(unsigned)(num&0x0000000F)]; szHex[1]=d[(unsigned)(num&0x000000F0>>1*4)]; szHex[2]=d[(...
编写递归函数,实现将一个十进制的整数(大于等于0)以二进制的形式输出...
include<stdio.h> void main(){ void DotB(int n);int n;scanf("%d",&n);while(1==1){ if(n>=0){ printf("请输入十进制整数:\\n");printf("该数的二进制形式为:");DotB(n);printf("\\n");break;} if(n<0){ printf("请输入十进制整数:\\n");printf("请输入大于等于0的...
C语言:输入一个十进制整数,将其转换为八进制数输出。不能使用%0,仍然...
include<stdio.h> include<string.h> void main(){ int a[100],i,j,k,b;printf("请输入一个十进制整数:");scanf("%d",&b);for(i=0;i<100;i++)\/\/方法:除以8取余 if(b!=0){ j = b%8;a[i] = j;b = b\/8;} else {a[i]=b;break;} for(k=i;k>=0;k--)\/\/...
用python输入一个十进制数,输出其二进制串,八进制串,十六进制串
首先,定义一个包含所有数字和字母的列表,以支持十六进制的转换。base=[str(x) for x in range(10)] + [chr(x) for x in range(ord('A'), ord('A') + 6)]接下来,定义一个函数将二进制字符串转换为十进制数。def bin2dec(string_num): return str(int(string_num, 2))然后,定义...
用c语言编写函数,将输入的十进制数转换成十六进制数并输出
\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"int main(void){ unsigned n,i,k; printf("Please enter a positive integer...\\nn="); scanf("%d",&n); printf("%d(10) = 0x",n);if(n){for(i=0;(n&0xf0000000)==0;n<<=4,i...
...进制转换的函数: convert(int n ):输入一个十进制数n,将它转换成R...
JOptionPane.showMessageDialog(null,"请输入数字(十进制数)!","提示信息",0);} }while(true);do { try { do { inputstr=JOptionPane.showInputDialog("请输入你需要转换进制(2~16之间的进制数):");conversion=Integer.parseInt(inputstr);if (conversion>1 && conversion<17)break;else JOpt...
C语言编程问题:输入一个10进制整数,各个倍数逆序后组成一个新的数...
上述描述的编程如下:include<stdio.h> int main (){ int n, m, t; \/\/变量n保存输入的10进制整数,m保存输出的整数,t为中间变量 scanf("%d",&n);m = 0;while(n != 0) \/\/n的值等于0说明输入数的所有位置已经考虑完 { t = n % 10; \/\/可以得到n的最后一位数 n = n \/ 10...