Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zamiana liczby dziesietnej na szesnastkowa

Ostatnio zmodyfikowano 2017-11-26 17:12
Autor Wiadomość
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.





C/C++
#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 );
}
P-167208
mateczek
» 2017-11-26 17:12:33
jeśli chcesz wyświetlać
C/C++
#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ć
C/C++
#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; // tutaj liczby od <10 do 16> zamieniane są na znaki "A" do "F"
        else
             znak = liczba + '0'; // tutaj liczby od <0 do 9> zamieniane są na znaki "0" do "9"
       
        cout << znak;
    }
}

int main()
{
    int liczba = 188;
    zamiana_szesnastkowe( liczba );
}
P-167210
« 1 »
  Strona 1 z 1