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

API return value

[es] :: C programiranje :: API return value

[ Pregleda: 844 | Odgovora: 6 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

roy_

Član broj: 129621
Poruke: 2
*.adsl.net.t-com.hr.



Profil

icon API return value13.01.2007. u 19:06

Pozdrav, naisao sam na problem kod koristenja nekih api-a!
kada na msdnu pise za return value npr. 'if the most significant bit is set then...' ili 'if the least significant bit is set then...', moze li mi itko objasniti kako provjeriti takav return value ili dati neki link gdje bi vise mogao procitati o tome..

hvala unaprijed!
13.01.2007. u 19:06 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 2642
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: API return value13.01.2007. u 22:29
Prvo treba da utvrdiš veličinu te povratne vrednosti, tj. da li je 16-bitna, 32-bitna, i sl.

Recimo da je 16 bitna.

1000000000000000 <--- most significant bit
0000000000000001 <--- least significant bit

...tvoj zadatak je da proveris da li je postavljen recimo "most significant bit":

1000000000000000 binarno == 8000 hex

Code:

if ( x & 0x8000 ) // <--- x je povratna vrednost API-ja
{
   // jeste most // <--- primeti da se proverava samo prvi bit, i da ce se u ovaj blok doci cak i kada je vrednost recimo 1100000000000000
}
else
{
   // nije most
}

...za "least signifficant" koristi 0x0001.

Postoje i drugaciji nacini ispitivanje ovoga sa obicnim vece, manje, pa cak i sa shiftovanjem,
ali ovo je jedno od resenja.

U svakom slucaju, prouci poglavlje gde se pominje binarna aritmetika.



[Ovu poruku je menjao X Files dana 13.01.2007. u 23:48 GMT+1]
FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
13.01.2007. u 22:29 

rumpl

Član broj: 54959
Poruke: 156
*.net81-66-199.noos.fr.



Profil

icon Re: API return value13.01.2007. u 22:46
Ako je 'if the least significant bit is set then...' onda je to neki pozitivan broj
Ako je 'if the most significant bit is set then...' onda je to neki negativni broj

Na primer:
INT_MAX = 11111111111111111111111111111110 = 2147483647
INT_MAX = 2^0*1 + 2^1*1 + .... + 2^32*0
INT_MIN = 00000000000000000000000000000001 = -2147483648
INT_MIN = 2^0*0 + .... + 2^32*1

Evo ti jedan mali program napisan na brzaka koji ti omogucava da vidis bilo koji broj u binarnom obliku:
Code:

#include <stdio.h>
#include <limits.h>

#define TEST_BIT(num, x) (num & (1 << (x - 1))) ? 1:0

int main()
{
  int i;
  int max = INT_MAX;
  int min = INT_MIN;

  for(i = 1; i <= 32; i++)
    printf("%d", TEST_BIT(max, i));

  printf("\n%d\n", max);

  for(i = 1; i <= 32; i++)
    printf("%d", TEST_BIT(min, i));

  printf("\n%d\n", min);

  return(0);
}

"The problem with the world is that everyone is a few drinks behind."
-Humphrey Bogart
13.01.2007. u 22:46 

pajac
Slovenija

Član broj: 17163
Poruke: 66
*.dynamic.dsl.t-2.net.



Profil

icon Re: API return value14.01.2007. u 19:26
Hehe, sa time sam se ja zezo kod sistemskog programiranja na unixu :)

Kad sam 1put učio C, "preskočio" sam to poglavje i mislio, da mi neče nikad trebat.E, pa malo sam se zenuo :))
If we want to discover, we first have to be willing to get lost!
14.01.2007. u 19:26 

roy_

Član broj: 129621
Poruke: 2
*.adsl.net.t-com.hr.



Profil

icon Re: API return value14.01.2007. u 21:57
puno hvala na odgovorima!
sve je jasno ;)
14.01.2007. u 21:57 

alexione
Aleksa Todorovic
Sremski Karlovci

Član broj: 46927
Poruke: 26
80.74.160.*

Sajt: alexionne.blogspot.com


Profil

icon Re: API return value22.01.2007. u 00:31
Samo mala ispravka:

Citat:
Ako je 'if the least significant bit is set then...' onda je to neki pozitivan broj


ne mora obavezno da znaci... recimo 0x11111111 (32x1) je -1 iako ima 'least significant bit set'

Citat:
Ako je 'if the most significant bit is set then...' onda je to neki negativni broj


yeya! :)
22.01.2007. u 00:31 

rumpl

Član broj: 54959
Poruke: 156
*.net81-66-199.noos.fr.



Profil

icon Re: API return value22.01.2007. u 19:29
@alexione
Tacno, bas sam glup ponekad...

Ispravka:
'if the most significant bit is NOT set then...' onda je to neki pozitivan broj
"The problem with the world is that everyone is a few drinks behind."
-Humphrey Bogart
22.01.2007. u 19:29 

[es] :: C programiranje :: API return value

[ Pregleda: 844 | Odgovora: 6 ]

Postavi temu Odgovori

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