题目描述
编写一个程序,输出一张表,内容是1~256范围内每个十进制数对应的二进制数、八进制数和十六进制数形式。第1行是标题,用制表符整齐格式(根据输出情况调整)显示数值表。
输入
无
输出
第1行是标题,用制表符整齐格式显示数值表(根据输出情况调整:每行两个数字之间使用一个制表符,二进制列小于128时与后一列间为两个制表符以保证对齐,见课本第二章编程题第3题),最后一行需要回车.
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
//void TenToTwo(int number)//十进制转二级制 递归
//{
// if (number == 0)
// {
// return;
// }
// TenToTwo(number / 2);
// cout << number % 2;
//}
void TenToTwo(int number)//非递归
{
int arr[9] = { 0 };//因为限定了数字最大是256
int i = 8;
while (number)
{
arr[i--] = number % 2;
number /= 2;
}
for (int j = 0; j < 9; j++)
{
cout << arr[j];
}
}
void test()
{
cout << "十进制\t" << "二进制 \t" << "八进制\t" << "十六进制\t" << endl;
for (int i = 1; i <= 256; i++)
{
cout.unsetf(ios::hex);
cout.setf(ios::dec);
cout << i << "\t";
TenToTwo(i);
cout.setf(ios::right);
cout.setf(ios::showbase);
cout.unsetf(ios::dec);
cout.setf(ios::oct);
cout << "\t" << i;
cout.unsetf(ios::oct);
cout.setf(ios::hex);
cout << "\t" << i;
cout << endl;
}
}
int main(){
test();
system("pause");
return EXIT_SUCCESS;
}