[ slavkot @ 17.08.2004. 23:48 ] @
Pozdrav,naišao sam na sledeći kod koji vrši konverziju char u binarni :

char str[] = "Test string";

for(int i = 0; i < strlen(str); ++i)
{
for(int k = 7; k >= 0; ++k)
cout << ((str >> k) & 1);

cout << " ";
}
cout << endl;

1. Zanima me šta radi ova naredba ((str >> k) & 1); ???
2. Na koji način string prebaciti u hex ?
[ stalker @ 18.08.2004. 00:51 ] @
Code:

char str[] = "Test string";

for(int i = 0; i < strlen(str); ++i)
{
for(int k = 7; k >= 0; --k)
cout << ((str[i] >> k) & 1);

cout << " ";
}
cout << endl;


Ovo moze da prodje ako je to ono sto si hteo...
Operator >> pomera bitove ulevo (<< pomera udesno) za k mesta u tvom slucaju. Ako si imao npr. 11110000>>3 dobijas 00011110.
& ti je I operacija nad bitovima (nek neko drugi kaze strucniji izraz). x & 1 daje 0 samo ako je x==0. Dovoljno ti je da zakljucis kako program radi, a uz malo pokusaja, mozda uspes sam da napravis char->hex
[ blaza @ 18.08.2004. 01:45 ] @
Prevodjenje stringa u hex je nesto lakse:
Code:


   int i = 0;
    while(str[i])
        cout << " 0x" << hex << (int) str[i++];
[ slavkot @ 18.08.2004. 02:11 ] @
stalker u pravu si za ono --k, za pomjeranje nisam ni obratio pažnju, a za & znam, ali se prvi put srećem za ovakav način konvertovanja u binarno.
blaza znao sam za ovo "hex", pokušavao sam na par načina, ali nisam mogao dokučiti da treba napisati kao što ti napisa sa while petljom.
Sad je sve ok., hvala na pomoći