Számrendszerek C-ben
Szégyen nem szégyen, informatikusként sose volt vágyálmom a számrendszerek között váltogatás. Főleg C-ben, a hideg is kiráz tőle, de miután nézegettem a gyakorlatom példa feladatait rájöttem: könnyebben is lehet váltani számrendszerek között c-ben. Vagyis a múltkori gyakorlaton megtettük, kezdtem megérteni(az amúgy egyszerű) logikáját, de biztos ami biztos írtam a tanárnak egy e-mailt.
/* hamarosan bővül, tanár e-mailjére várok, hülyeséget meg nem akarok kiírni */
Decimális [0-1] | %hd |
Oktális [0-7] | %ho |
Hexadecimális [0-9 & A-F] | %hx |
Példa feladat amit még órán vettünk:
F: Írj egy programot, ami beolvas egy előjeltelen short int értéket, és nyolcas számrendszerbe átváltva írja ki. =========================================================================== #include <stdio.h>int main() { unsigned short int v; scanf("%hu", &v); printf("%ho\n", v); return 0; }
Elsőnek is scanf-el bekérjük a számot, %hu-t használunk, mert ugye unsigned short van. Majd mikor ki akarjuk írni printf-el akkor már %hu-t így megtörténik a váltás.
Gyorsan mutatok még egy példát, most 16-os számrendszer beli számba váltsuk át a bementi értéket.
#include <stdio.h>int main() { unsigned short int v; scanf("%hu", &v); printf("%hx\n", v); return 0; }
Gyakorlatilag ugyan az a kettő, csak most %ho helyett %hx-et használtunk.
Források:
Első példaprogram
Táblázatban szereplő adatok (#jegyzetmagamnak: igen jó kis összefoglaló oldal, alapok vannak benne, lehet majd lefordítom)