C-ben hogyan lehet egy decimális számot kettes számrendszerbe átváltani?
Figyelt kérdés
A feladat a pl. 23 átváltása kettes számrendszerbe, úgy, hogy a megjelenő szöveg kb. ez legyen :
Tízes: 23
Kettes: 10111
És a csavar:
Csak alapműveleteket lehet hasznalni.
Ezért meg van szabva, hogy a megadott szám max 255 lehet, és lehetnek "segéd" nullák is a kapott bináris szám elején.
2018. szept. 11. 22:36
2/19 anonim válasza:
int main()
{
int n, c, k;
printf("Tizes: \n");
scanf("%d", &n);
printf("Kettes: %d\n", n);
for (c = 31; c >= 0; c--)
{
k = n >> c;
if (k & 1)
printf("1");
else
printf("0");
}
printf("\n");
return 0;
}
3/19 A kérdező kommentje:
"Odafelé" (11101000) megy, de "visszafelé" (00010111) így nem, hacsak nem használnék 8 változót, hogy aztán printf("%d%d...", sz1, sz2, ...)-vel írassam ki, de ez nem lenne szép megoldás.
2018. szept. 11. 23:03
5/19 A kérdező kommentje:
Nem lehet benne ciklus, elágazás, tömb, úgy gyorsan kész lenne, csak alap operátorokat lehet használni most.
2018. szept. 11. 23:08
6/19 anonim válasza:
fűzz belőle egy stringet és mindig elé fűzöd az aktuálisat nem egy nagy kunszt
7/19 A kérdező kommentje:
A számjegyeket karakter tömbe gyűjteném, és az elemeit fordított sorrendben írtam volna ki, ha lehetne használni.
2018. szept. 11. 23:13
8/19 A kérdező kommentje:
3 feladat házi volt, ebből kettővel másnap kész voltam, de ezen már lassan egy hete gondolkozok.
2018. szept. 11. 23:20
9/19 anonim válasza:
"Nem lehet benne ciklus, elágazás, tömb"
Aha, hogyne.
10/19 anonim válasza:
Én így csinálnám:
int n = 23;
int b = 0;
(n&32) ? b+=100000 : 0;
(n&16) ? b+=10000 : 0;
(n&8) ? b+=1000 : 0;
(n&4) ? b+=100 : 0;
(n&2) ? b+=10 : 0;
(n&1) ? b+=1 : 0;
printf("Kettes: %d", b);
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!