Jak mám napsat program, který vypíše maximální číslo, které je možno uložit do
unsigned int
signed int
short
long
?
Díky za případné odpovědi :)
Fórum › C / C++
Jazyk C a zjištění maximálního čísla
int pole[5]; //zadame don cisla
int dlzkapola = ...; //neviem presne ako to zistit, tak pri zadavani dlzkapola++
int i, najvacsie = 0;
for(i = 0; i < dlzkapola; i++){
if(pole[i] > najvacsie)
najvacsie = pole[i];
}
pisane z hlavy
To Filipus : Max cislo, ktere se vejde do jednoho bytu (unsigned char) je 255, tedy 2^8 -1 (ten exponent je pocet bitu - v jednom bytu je jich vetsinou osm)
Pomoci fce sizeof() si zjistis velikost typu v B, prevedes na b (vynasobeni osmi) a vyslednym cislem umocnis 2. Nakonec odectes jednicku (musime pocitat s nulou -> pokud se do typu vejde 256 hodnot, maximum je 255) a pokud se jedna o signed typ, vydelis to jeste dvouma.
int size = sizeof(unsigned int); // velikost v B
size *= 8; // velikost v b
{desne velkej typ} max = pow(2,size)-1;
//max /= 2; // pokud je signed
No možné je to udělat i takto:
unsigned int cislo = 1;
unsigned int stare_cislo = 0;
while (cislo != stare_cislo)
{
stare_cislo = cislo;
cislo <<= 1;
cislo |= 1;
}
V číslu je nejvyšší hodnota pro typ unsigned
Pro signed typ udelas po tomto cyklu
cislo >>= 1;
A mas nejvyssi cislo pro signed typ.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 34 hostů
Podobná vlákna
Vypis maximalniho cisla — založil nikola18
Zjištění chromatického čísla — založil Honza
Programovací jazyk na veliká čísla — založil dragon124
Zjištění čísla objektu na formuláři — založil Pebble
Délka maximálního úseku stejných čísel obsaženého posloupnosti — založil kejta
Moderátoři diskuze