• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Konwersja liczb dziesiętnych na szesnastkowe.

Object Storage Arubacloud
0 głosów
20,026 wizyt
pytanie zadane 18 kwietnia 2015 w C i C++ przez Wiktor Stary wyjadacz (11,120 p.)

Witam, otóz chciałbym zrobić program, który po wpisaniu liczby dzięsiętnej będzie ją konwertował na liczbę w postaci szesnastkowej, tylko zupełnie nie wiem jak się do tego zabrać. Możecie mi podrzucić jakieś rady, co przeczytać lub coś podobnego?

Pozdrawiam.smiley

3 odpowiedzi

0 głosów
odpowiedź 18 kwietnia 2015 przez Mister123450 Dyskutant (8,700 p.)
Polecam przeczytać: http://www.programuj.com/artykuly/rozne/sysliczb.php

Dobrze tam jest wytłumaczone, możesz też jako ciekawostkę obejrzeć film Pana Zelenta: http://miroslawzelent.pl/informatyka/systemy-liczbowe-dwojkowy-szesnastkowy-osemkowy/
komentarz 18 kwietnia 2015 przez Wiktor Stary wyjadacz (11,120 p.)
Dobrze rozumiem jak robi się to na kartce papieru, ale jakoś nie mogę sobie tego wyobrazić jako kod źródłowy.
komentarz 18 kwietnia 2015 przez Mister123450 Dyskutant (8,700 p.)
Chodzi Ci o konwersję pośredniczą? (dec -> bin -> hex)
0 głosów
odpowiedź 18 kwietnia 2015 przez hit02 Nałogowiec (33,970 p.)

Algorytm jest taki sam, jak do konwersji na system binarny z tą różnicą, że zamiast dzielić przez 2, dzielisz przez 16.

Jeśli będziesz robić coś takiego, że system wejściowy i system wyjściowy można wybrać z jakiegoś zakresu np. 2 - 36 (tylko 36, bo po 'z' nie wiadomo, jakiego znaczka użyć. cheeky), to polecam też użyć systemu pośredniczącego.

Przykładowo (3) -> (2) -> (16)smiley

Pozdrawiam.

0 głosów
odpowiedź 18 kwietnia 2015 przez marcin_kub Obywatel (1,420 p.)

Generalnie, to C++ ma wbudowaną funkcję konwersji z DEC to HEX. Wystarczy użyć konstrukcji

std::cout<< hex << liczba;

gdzie liczba, to zmienna.

Niestety, chyba działa to tylko przy wyświetlaniu - cout.

komentarz 18 kwietnia 2015 przez Wiktor Stary wyjadacz (11,120 p.)

Dziękuję Tobie bardzo, chodzi jak powinno, ale i tak zastanawia mnie w jaki sposób zrobić to bez tej funkcji.

Pozdrawiam.smiley

komentarz 19 kwietnia 2015 przez marcin_kub Obywatel (1,420 p.)
Polecałbym Ci zacząć od czegoś, moim zdaniem prostszego - zajęcia się konwersją z DEC do BIN.
Na pewno przy takich zamianach nie może obejść się bez znaku modulo np. x%16. Popróbuj.
 Pozdrawiam. ;)
komentarz 20 kwietnia 2015 przez dwaj Nowicjusz (140 p.)
// zamianę z systemu dziesiętnego na dowolny system o podstawie p
#include<iostream>
#include<cstdlib>
using namespace std;
 
void zamiana(long long n, int p)
{
     if(n>0)
     {
         zamiana(n/p,p); //dzieki rekurencjji liczby sa wyswietlane w poprawnej kolejnosci
         if(n%p>9)
//dla systemów o podstawie większej niż 9 cyfry są literami
            switch(n%p)
            {
               case 10:
                  cout<<"A"; break;
               case 11:
                  cout<<"B"; break;
               case 12:
                  cout<<"C"; break;
               case 13:
                  cout<<"D"; break;
               case 14:
                  cout<<"E"; break;
               case 15:
                  cout<<"F"; break;
            }
         else
               cout << n%p;
     }
}
int main()
{
    int p;
    long long n;
        cout << "Podaj dowolna liczbe dziesietna: ";
         cin >> n;
         cout << "Wskaz podstawe systemu na jaki chcesz liczbe zamienic: ";
        cin >> p;
      cout << "Liczba " << n << " w systemie " << p << " to: ";
        if(n==0) cout << 0;
        else zamiana(n,p); // wywolanie funkcji
    cout << endl;    
    system("pause");
    return 0;    
}

Podobne pytania

0 głosów
2 odpowiedzi 260 wizyt
pytanie zadane 4 grudnia 2022 w C i C++ przez natalia2002. Początkujący (400 p.)
0 głosów
2 odpowiedzi 479 wizyt
pytanie zadane 2 lipca 2020 w C i C++ przez rei656 Początkujący (290 p.)
0 głosów
0 odpowiedzi 415 wizyt
pytanie zadane 30 października 2018 w Assembler przez annonymouzinho Nowicjusz (140 p.)

92,626 zapytań

141,486 odpowiedzi

319,846 komentarzy

62,009 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...