十进制转二进制
#include <cstdio>
int main ( ) {
int n;
int a[ 1000 ] ;
scanf ( "%d" , & n) ;
int i= n, j= 0 ;
while ( i) {
a[ j] = i& 1 ;
i= i>> 1 ;
j++ ;
}
for ( int i= j- 1 ; i>= 0 ; i-- ) printf ( "%d" , a[ i] ) ;
printf ( "\n" ) ;
return 0 ;
}
二进制转十进制
#include <cstdio>
#include <cmath>
#include <cstring>
int main ( ) {
char a[ 1000 ] ;
scanf ( "%s" , a) ;
int sum= 0 , len= strlen ( a) ;
for ( int i= 0 ; a[ i] ; i++ ) if ( a[ i] == '1' )
sum= sum+ ( 1 << ( len- i- 1 ) ) ;
printf ( "%d\n" , sum) ;
return 0 ;
}
十进制转八进制
#include <cstdio>
int main ( ) {
int a;
scanf ( "%d" , & a) ;
printf ( "%o\n" , a) ;
return 0 ;
}
十进制转十六进制
#include <cstdio>
int main ( ) {
int a;
scanf ( "%d" , & a) ;
printf ( "%x\n" , a) ;
return 0 ;
}
八进制转十进制
#include <cstdio>
int main ( ) {
int a;
scanf ( "%o" , & a) ;
printf ( "%d\n" , a) ;
return 0 ;
}
十六进制转十进制
#include <cstdio>
int main ( ) {
int a;
scanf ( "%x" , & a) ;
printf ( "%d\n" , a) ;
return 0 ;
}
八进制转十六进制
#include <cstdio>
int main ( ) {
int a;
scanf ( "%o" , & a) ;
printf ( "%x\n" , a) ;
return 0 ;
}
十六进制转八进制
#include <cstdio>
int main ( ) {
int a;
scanf ( "%x" , & a) ;
printf ( "%o\n" , a) ;
return 0 ;
}
十进制转x进制(通用)
#include <cstdio>
int main ( ) {
int y= 0 , k, n, x;
char a[ 1000 ] ;
char z= 'A' ;
scanf ( "%d%d" , & n, & x) ;
while ( n) {
y++ ;
a[ y] = n% x;
n= n/ x;
if ( a[ y] > 9 ) a[ y] = z+ ( a[ y] - 10 ) ;
else a[ y] = a[ y] + '0' ;
}
for ( int i= y; i> 0 ; i-- ) printf ( "%c" , a[ i] ) ;
printf ( "\n" ) ;
return 0 ;
}
m进制转10进制(通用)
#include <cstdio>
int main ( ) {
char a[ 1000 ] ;
int n, m, f= 0 ;
scanf ( "%s%d" , a, & m) ;
for ( int i= 0 ; a[ i] ; i++ ) {
f* = m;
if ( a[ i] >= 'A' ) f= f+ ( a[ i] - 'A' + 10 ) ;
else f= f+ ( a[ i] - '0' ) ;
}
printf ( "%d\n" , f) ;
return 0 ;
}