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

Konwerter z binarnej na szesnastkowy (C) (funkcja int getchar() )

Ostatnio zmodyfikowano 2018-03-18 08:19
Autor Wiadomość
robertos18
Temat założony przez niniejszego użytkownika
Konwerter z binarnej na szesnastkowy (C) (funkcja int getchar() )
» 2018-03-17 18:39:49
Witam. Pisałem ten kod na zajęciach. Czy poprawnie go zapisałem? Jeśli tak, to mógłby ktoś pomóc ten kod przerobić, żeby była użyta funkcja int getchar(). Mam z tym problemy :/

C/C++
#include <stdio.h>

void BinToHex( int bin ) {
    int hex = 0, i = 1, reszta;
    while( bin != 0 )
    {
        reszta = bin % 10;
        hex = hex + reszta * i;
        i = i * 2;
        bin = bin / 10;
    }
    printf( "Szesnastkowo: %lX", hex );
   
}

int main()
{
    int bin;
   
    printf( "Podaj liczbe binarna: " );
    scanf( "%ld", & bin );
    BinToHex( bin );
    return 0;
}
 
P-170062
jankowalski25
» 2018-03-17 19:17:35
W czym problem? Odczytujesz jeden znak za pomocą » standard Cgetchar. Jeśli jest równy
'0'
, to masz zero, jeśli
'1'
, to jeden. W innych przypadkach format jest niepoprawny (jeśli musisz sprawdzać takie rzeczy). Ewentualnie możesz traktować pierwszy znak niebędący zerem ani jedynką jako koniec danych wejściowych.
P-170063
pekfos
» 2018-03-17 19:53:21
Czy poprawnie go zapisałem?
A kompiluje się..? A działa..?

Jeśli tak, to mógłby ktoś pomóc ten kod przerobić, żeby była użyta funkcja int getchar(). Mam z tym problemy :/
C/C++
// Reszta bez zmian.
getchar();
return 0;
}
P-170064
mateczek
» 2018-03-18 08:19:25
Czy poprawnie go zapisałem?
 Coś tam ci konwertuje. Ale Ty wczytując liczbę wczytujesz ją dziesiętne nie binarnie.
1001 to jest "tysiąc jeden" a nie "9". I pewnie dlatego dostałeś polecenie o użyciu getchar() byś poprawnie wczytał liczbę. Czyli aby liczba wczytana była prawidłowo do pamięci (aby można było na wczytanej liczbie wykonywać operacje matematyczne)
P-170067
« 1 »
  Strona 1 z 1