Konwerter z binarnej na szesnastkowy (C) (funkcja int getchar() )
Ostatnio zmodyfikowano 2018-03-18 08:19
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 :/ #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; }
|
|
jankowalski25 |
» 2018-03-17 19:17:35 W czym problem? Odczytujesz jeden znak za pomocą getchar. 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. |
|
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 :/ |
|
|
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) |
|
« 1 » |