Sign-up....

求助:十进制转其他进制的问题

#include <iostream>

using namespace std;

void binary(int);

void octal(int);

void hex(int);

int main()

{

int n;

cout << "Enter n(n >= 1 && n <= 256): ";

cin >> n;

cout << n << " 用二进制表示为: ";

binary(n);

cout << endl;

cout << n << " 用八进制表示为: " << "0";

octal(n);

cout << endl;

cout << n << " 用十六进制表示为: " << "0x";

hex(n);

cout << endl;

return 0;

}

void binary(int x)

{

int a[8];

int i;

for(i = 7; i >= 0; --i)

{

a[i] = x & 1;

x = x>>1;

}

for(i = 0; i < 8; ++i)

cout << a[i];

}

void octal(int y)

{

char b[3];

int j;

for(j = 2; j >= 0; ++j)

{

b[j] = y % 8;

y /= 8;

}

for(j = 0; j < 3; ++j)

cout << b[j];

}

void hex(int z)

{

int c[3];

int k;

for(k = 2; k >= 0; --k)

{

c[k] = z % 16;

z /= 16;

}

for(k = 0; k < 3; ++k)

{

if(c[k] >= 10)

{

switch(c[k])

{

case 10:

cout << 'A';

break;

case 11:

cout << 'B';

break;

case 12:

cout << 'C';

break;

case 13:

cout << 'D';

break;

case 14:

cout << 'E';

break;

case 15:

cout << 'F';

break;

default:

break;

}

}

else

cout << c[k];

}

}

上面是我编的代码,可是只打印出二进制之后就结束了,不知为何,求好心人帮忙呀

[1075 byte] By [msdn] at [2007-8-14 13:02:45]
# 1 Re: 求助:十进制转其他进制的问题

错误出在8进制的写法:

char b[3]; -- > int b[3];

for(j = 2; j >= 0; ++j) ->for(j = 2; j >= 0; --j)

qhfu at 2005-5-13 21:50:38 >
# 2 Re: 求助:十进制转其他进制的问题

太感谢啦,我看了半天愣是没看出来:)

jhw4048 at 2005-5-13 21:54:13 >

C/C++

All Classified