Zamiana liczby dziesietnej na szesnastkowa
Ostatnio zmodyfikowano 2017-11-26 17:12
Swk Temat założony przez niniejszego użytkownika |
Zamiana liczby dziesietnej na szesnastkowa » 2017-11-26 16:35:47 Mam problem, zrobiłem zamiane liczb od 1-9 i potem od 10 wypisuje a od 11 b itd. Jak zrobić przedstawianie liczb wiekszych od 15 za pomoca liter, np 188=1112 aby zostalo przedstawione jako bc. #include <stdio.h> #include <stdlib.h>
void zamiana_na_binarne( int x ) { if( x > 0 ) { zamiana_na_binarne( x / 2 ); printf( "%d", x % 2 ); } }
void zamiana_osemkowe( int x ) { if( x > 0 ) { zamiana_osemkowe( x / 8 ); printf( "%d", x % 8 ); } }
void zamiana_szesnastkowe( int x ) { if( x > 0 ) { zamiana_szesnastkowe( x / 16 ); printf( "%d", x % 16 ); } }
int main( void ) { int y; printf( "Podaj liczbe dziesietna:" ); scanf( "%d", & y ); printf( "Zamiana z liczb dziesietnych na osemkowe:\n" ); zamiana_osemkowe( y ); printf( "\n" ); printf( "Zamiana z liczb dziesietnych na dwojkowe:\n" ); zamiana_na_binarne( y ); printf( "\n" ); printf( "Zamiana z liczb dziesietnych na szesnastkowe:\n" ); switch( y ) { case 10: printf( "A" ); break; case 11: printf( "B" ); break; case 12: printf( "C" ); break; case 13: printf( "D" ); break; case 14: printf( "E" ); break; case 15: printf( "F" ); break; default: if( y <= 9 ) { zamiana_szesnastkowe( y ); } else { zamiana_szesnastkowe( y ); } break; } return( 0 ); }
|
|
mateczek |
» 2017-11-26 17:12:33 jeśli chcesz wyświetlać #include <iostream> #include <string>
using namespace std; int main() { int liczba = 188; cout << liczba << "dec = " << hex << liczba << " hex" << endl;; }
a co do algorytmu to tak jakoś powinno zadziałać #include <iostream> #include <string>
using namespace std; void zamiana_szesnastkowe( int x ) { if( x > 0 ) { zamiana_szesnastkowe( x / 16 ); int liczba = x % 16; char znak; if( liczba >= 10 ) znak = 'A' + liczba - 10; else znak = liczba + '0'; cout << znak; } }
int main() { int liczba = 188; zamiana_szesnastkowe( liczba ); } |
|
« 1 » |