[ nuntius @ 25.04.2004. 16:05 ] @
Kako da napisem program koji od 4 bajtnog broja izdvaja samo 3 bajtni broj, a zatim ga prevede iz binarnog sistema u decimalni i ispise? Ako neko zna, please Help! |
[ nuntius @ 25.04.2004. 16:05 ] @
[ Fortune Teller @ 25.04.2004. 16:58 ] @
Citat: Kako da napisem program koji od 4 bajtnog broja izdvaja samo 3 bajtni broj, a zatim ga prevede iz binarnog sistema u decimalni i ispise? Ako neko zna, please Help! Nisi rekao koji bajt otpada(predpostavljam najniži?),dalje pretpostavljam da ti unosiš broj? A za ispis treba samo koristiti izlaznu konverziju "%d",ukoliko ga inicijalizuješ kao int. [ Milan Aksic @ 25.04.2004. 20:09 ] @
Mogao si makar da pogledas "top temu" http://www.elitesecurity.org/tema/13455 koja objasnjava operacije nad bitovima u c/c++ - u.
Kako nisi napisao koji bajt konkretno treba da "otpadne", sledeci program trebao bi da ti objasni, kako se "izbacuju vrednosti" pojedinih bajtova. Code: #include <stdio.h> int rol(int var0) { int var1 = var0; var0 <<= 8; if (var1 & 0xff000000) var0 |=0xff; return var0; } int main() { int var0 = 0x55555555, i, j; char *rbr[4]={"prvog", "drugog", "treceg", "cetvrtog"}; for (i=0, j = 0xffffff00; i < 4; i++) { printf("4b:%d bez %8s bajta: (mask:%u)%d\n", var0, rbr[i], j, var0&j); j = rol(j); } return 0; } Nakon toga ako npr. hoces da prikazes neki broj bez cetvrtog bajta, dovoljno je napisati: Code: ili npr. bez prvogprintf("%d\n", var0&ffffff); Code: printf("%d\n", var0>>8); E da, ovo je poslednji put, da nekome pisem program za "domaci zadatak", bez imalo pokazanog truda (kooda), koriscenja pretrage i citanja "top tema". Stavise "prag tolerancije" prema ovakvim temama, s moje strane, ce se znatno spustiti, nasuprot delu "es-tima" koji verovatno smatra da treba nastaviti sa dosadasnjom praksom. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|