2014. nov 18.

Számrendszerek C-ben

írta: grimyboy
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 */

tumblr_nej65oYOA31ts6qpqo1_1280.jpg

 

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)
Szólj hozzá

c c nyelv számrendszer c programozás c-ben kötprog nagy zh