Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

4 bajtni broj! Problem!

[es] :: C/C++ programiranje :: 4 bajtni broj! Problem!

[ Pregleda: 2337 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nuntius
Jorda Melior

Član broj: 19897
Poruke: 8
*.dialup.blic.net



Profil

icon 4 bajtni broj! Problem!25.04.2004. u 16:05 - pre 243 meseci
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!
Nightwish - WishMaster
 
Odgovor na temu

Fortune Teller
Novi Beograd

Član broj: 25379
Poruke: 26
*.vdial.verat.net



Profil

icon Re: 4 bajtni broj! Problem!25.04.2004. u 16:58 - pre 243 meseci
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.
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.smin.sezampro.yu.



Profil

icon Re: 4 bajtni broj! Problem!25.04.2004. u 20:09 - pre 243 meseci
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:
printf("%d\n", var0&ffffff);
ili npr. bez prvog
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.
 
Odgovor na temu

[es] :: C/C++ programiranje :: 4 bajtni broj! Problem!

[ Pregleda: 2337 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.