1.
./*
给定程序MODI1.C中函数 fun 的功能是: 将十进制正整数m转
换成k(2≤k≤9)进制数, 并按位输出。
例如,若输入 8 和 2 ,则应输出 1000 (即十进制数8转换成二
进制表示是1000)。
请改正 fun 函数中的错误,使它能得出正确的结果。
注意:不要改动 main 函数。不得增行或删行,也不得更改程
序的结构!
*/
#include
#include
void fun( int m, int k )
{
int aa[20], i;
for( i = 0; m; i++ )
{
/**********found**********/
aa[i] = m%k;
m /= k;
}
for( ; i; i-- )
/**********found**********/
printf( "%d", aa[ i-1 ] );
//printf( "%d", aa[ i ] );
}
main()
{
int b, n;
clrscr();
printf( "/nPlease enter a number and a base:/n" );
scanf( "%d %d", &n, &b );
fun( n, b );
printf("/n");
}
2.char result [33];
result[32] = '/0';
for (int i = 0, j = 1; i < 33; i++)
{
result[32 - i - 1] = (nSource & j) ? '1' : '0';
j = j << 1;
}
3.unsigned char BtoH(char ch)//将16进制的一个字符转换为十进制的数
{
//0-9
if (ch >= '0' && ch <= '9')
return (ch - '0');
//9-15
if (ch >= 'A' && ch <= 'F')
return (ch - 'A' + 0xA);
//9-15
if (ch >= 'a' && ch <= 'f')
return (ch - 'a' + 0xA);
return(255);
}
可根据该函数改写。。
也可以用该函数转换16进制每个字符。然后相加得到10进制数,再用DecimalToBinary转换
4.//转换十进制为二进制
CString DecimalToBinary(CString strDecimal)
{
int nDecimal = atoi(strDecimal.GetBuffer(0));
int nYushu; //余数
int nShang; //商
CString strBinary = "";
char buff[2];
CString str = "";
BOOL bContinue = TRUE;
while(bContinue)
{
nYushu = nDecimal%2;
nShang = nDecimal/2;
sprintf(buff,"%d",nYushu);
str = strBinary;
strBinary.Format("%s%s",buff,str);
nDecimal = nShang;
if(nShang==0)
bContinue = FALSE;
}
return strBinary;
}
或者
char str[100];
itoa(11, str, 2);//根据最后itoa最后一个参数设置进制,可把十进制转换为其他进制