ďťż

Ładny brzuch

Jaki typ zmiennych powinienen wybrać ,aby "upchnąć " tam liczbę 1 000 000 000
(słownie:miliard)?????



Musisz wykorzystać tablice ;)


Musisz wykorzystać tablice  ;)


A jak ją w takim razie wpiszę?



Mógłbys pokazać to na przykładzie. Sam sie w tym gubie :unsure:


Jaki typ zmiennych powinienen wybrać ,aby "upchnąć " tam liczbę 1 000 000 000
(słownie:miliard)?????

__int64

__int64 z biblioteki cstdio

edit: Futhark szybszy :)
Użytkownik pekore edytował ten post 25 październik 2005, 20:00
int;
long;
unsigned int;
unsigned long;
__int32;
__int64;


Eee..... miliard to się zmieści nawet w signed int, który ma zakres od -2^31 +1 do 2^31 -1 [czy jakoś podobnie;]. A unsigned int mieści w sobie liczby od 0 do 2^32 -1. A od int'ów jest jeszcze większy long, i long long [GCC] lub unsigned __int64 [MSVC]. Wyskoczyłeś z naprawdę malutką liczbą, w porównaniu do tego co się zmieści w takich prostych typach :).


Mółbyś podać jakąś stronę ,gdzie byłyby podane zakresy tych zmiennych
Bo chyba moje źródła kłamią (tam pisze "jedynie" o -232..0 dla unsigned int)


Mółbyś podać jakąś stronę ,gdzie byłyby podane zakresy tych zmiennych
Bo chyba moje źródła kłamią (tam pisze "jedynie" o -232..0 dla unsigned int)

To dopiero "łopatologiczne" wyjaśnienie...
A propo tych bajtów to też "żródło" (czyli pierwsza pozycja na Googlu) mówiło o 2 bajtach pojemności.Dziwne...


To dopiero "łopatologiczne" wyjaśnienie...
A propo tych bajtów to też "żródło" (czyli pierwsza pozycja na Googlu) mówiło o 2 bajtach pojemności.Dziwne...


To dopiero "łopatologiczne" wyjaśnienie...
A propo tych bajtów to też "żródło" (czyli pierwsza pozycja na Googlu) mówiło o 2 bajtach pojemności.Dziwne...


Dawno, dawno temu short miał tyle samo, co char, czyli 1 bajt. Teraz ma dwa [short, nie char ;)].
Pozdrawiam,
TeMPOraL.


Bzdura - char, short, long ZAWSZE miały odpowiednio 1, 2, 4 bajty - to int sobie zmienia potomka.


E bzdura, jak nie bzdura? Ja ze swojej strony jestem przekonany, że short miał 1 bajt w czasach 16 bitowych maszyn. Ale najlepiej będzie ten problem rozwiązać jakimiś źródłami z sieci :).


Raczej dowodu nie przytocze (jedyna wada książki, obok ciężaru), ale zawsze był taki podział. Pierwsze mikroprocesory mające 2 lub 4 bity były używane w kalkulatorach na liczbach. następnie 8 bit' owe zajmowały się tekstem i słowo na tej platformie miało 8 bit. Dalej w erze 16 bit, słowo miało 16 bit, a 8 bit oddelegowano jako "znak" dla operacji dla tekstu. Dalej przy 32 bit słowo przyjeło 32 bit'y, znak dalej miał 8 bit, ale wprowadzono nową jednostke - "półsłowo" mające rozmiar słowa z maszyn 16 bit.

short jest bardzo precyzyjnie opisany w standardzie ISO. O ile standard nie mowi dokladnie o wymogach rozmiaru, o tyle mowi dokladnie o wartosciach jakie implementacja musi zapewnic.


5.2.4.2 Numerical limits
1 An implementation is required to document all the limits specified in this subclause,
which are specified in the headers <limits.h> and <float.h>. Additional limits are
specified in <stdint.h>.
Forward references: integer types <stdint.h> (7.18).
5.2.4.2.1 Sizes of integer types <limits.h>
1 The values given below shall be replaced by constant expressions suitable for use in #if preprocessing directives. Moreover, except for CHAR_BIT and MB_LEN_MAX, the following shall be replaced by expressions that have the same type as would an
expression that is an object of the corresponding type converted according to the integer promotions. Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.
14) See ‘‘future language directions’’ (6.11.3).
§5.2.4.2.1 Environment 21

(... ciach ...)

— minimum value for an object of type short int
SHRT_MIN -32767 // -(2^15 - 1)
— maximum value for an object of type short int
SHRT_MAX +32767 // 2^15 - 1
— minimum value for an object of type int
INT_MIN -32767 // -(2^15 - 1)
— maximum value for an object of type int
INT_MAX +32767 // 2^15 - 1
— minimum value for an object of type long int
LONG_MIN -2147483647 // -(2^31 - 1)
— maximum value for an object of type long int
LONG_MAX +2147483647 // 2^31 - 1
Jak widac dla spelnienia standardu rowniez int moze miec 16 bitow (jak short). To, ze ma 32 bity to tylko sprawa implementacji.
Użytkownik st3tc edytował ten post 25 październik 2005, 21:21

Czyli zakres int'a wynosi od -(2^31)+1 do (2^31)-1.

Mała poprawka: -(2^31) do (2^31)-1.


Mała poprawka: -(2^31) do (2^31)-1.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •