frage zu c
Geizhals » Forum » Programmierung » frage zu c (2 Beiträge, 48 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: frage zu c
02.04.2003, 10:03:54

sizeof(int) liefert die Nummer an verwendeten Bytes, normallerweise bei uns 4.
Das ist gleich 4 * 1Byte = 4 Byte = 4*8Bit = 32Bit
Also haben wir 32 Bit für int zur Verfügung.

Binär sieht die größte Zahl so aus (achtung mit Vorzeichen!):
01111111 11111111 11111111 11111111

2^32 entspricht:
1 00000000 00000000 00000000 00000000

(2^32)-1:
11111111 11111111 11111111 11111111

((2^32)-1) - (2^31) = 2^(32-1)-1
11111111 11111111 11111111 11111111
10000000 00000000 00000000 00000000  (-)
---------------------------------------
01111111 11111111 11111111 11111111  = max positive Zahl

max negative Zahl = -(max positive Zahl + 1):
10000000 00000000 00000000 00000000


Für unsigned int ist die kleinste Zahl 0, und die größte 2^(32)-1


in C:


void checkSizeOfSigned(char* type_name, int bit_size)
{
  long long max_val=0;
  long long min_val=0;

  max_val = ( 1 << 8*sizeof(short)-1)-1 ;
  min_val =  -(max_val+1);
  printf("Max Wertebereich von %s ist %d", type_name, max_val);
  printf("Min Wertebereich von %s ist %d", type_name, min_val);

}

void checkSizeOfUnSigned(char* type_name, int bit_size)
{
  long long max_val=0;
  long long min_val=0;

  max_val = ( 1 << 8*sizeof(short))-1 ;
  printf("Max Wertebereich von %s ist %d", type_name, max_val);
  printf("Min Wertebereich von %s ist %d", type_name, min_val);

}


mfg Switi
--
C++, Java, (Smartl)Eiffel, XML, Open Source developer
Please visit the raBooF commandline parser project at sourceforge!
See my user profile

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung