DEC,BIN,HEX,OCT.
Viết chương trình in bảng của các số từ 1 đến 256 dưới dạng nhị phân, bát phân và thập lục phân tương ứng
#include<iostream>
using namespace std;
long sodu(int a,int b)
{
return a-b*int(a/b);
}
void dao(char *s)
{
char a;
for(int i=0;i<strlen(s)/2;i++)
{
a=s[i];s[i]=s[strlen(s)-1-i];s[strlen(s)-1-i]=a;
}
}
void to2(long n,char *s)
{
int i=0;
while(n>0)
{
s[i++]=sodu(n,2)+48; //so 0 co ma 48
n/=2;
}
s[i]='\0';
dao(s);
}
void to8(long n,char *s)
{
int i=0;
while(n>0)
{
s[i++]=sodu(n,8)+48;//so 0 co ma 48
n/=8;
}
s[i]='\0';
dao(s);
}
void to16(long n,char *s)
{
int i=0,m;
while(n>0)
{
m=sodu(n,16);
if(m<10) s[i++]=m+48;
else switch(m)
{
case 10:s[i++]='A';break;
case 11:s[i++]='B';break;
case 12:s[i++]='C';break;
case 13:s[i++]='D';break;
case 14:s[i++]='E';break;
case 15:s[i++]='F';break;
}
n/=16;
}
s[i]='\0';
dao(s);
}
void main()
{
char a[100];
char b[100];
char c[100];
int i;
printf("DEC : BIN : OCT : HEX \n-----------------------------------\n");
for(i=150;i<=256;i++)
{
to2(i,a);to8(i,b);to16(i,c);
printf("%-5d : %-10s : %-6s : %-6s\n\n",i,a,b,c);
}
}