C/C++ ima vrlo labave definicije svojih osnovnih cjelobrojnih tipova podataka (char short int long i long long). Jezik jamči da oni mogu predstavljati barem neki raspon vrijednosti, ali svaka određena platforma (hardver operacijskog sustava kompilatora) može biti veća od toga.
Dobar primjer je dug. Na jednom stroju može biti 32 bita (minimum koji zahtijeva C). Na drugom je 64 bita. Što učiniti ako želite tip cijelog broja koji ima točno 32 bita? Tu na scenu dolazi int32_t: to je pseudonim za bilo koji tip cijelog broja koji vaš sustav ima, a to je točno 32 bita.
Predložak:
mysql promijeniti vrstu stupca
intN_t or uintN_t Where N is width of integer which can be 8 16 32 64 or any other type width supported by the library.
CPP
// C++ program to show use of extended integral types #include using namespace std; int main() { uint8_t i; // i with width of exact 8 bits // Minimum value represented by unsigned 8 bit is 0 i = 0; cout << "Minimum value of it: "<< (int)i << endl; // Maximum value represented by unsigned 8 bit is 255 i = 255; cout << "Maximum value of it: "<< (int)i << endl; // Warning: large integer implicitly truncated to // unsigned type. It will print any garbage value i = 2436; cout << "Beyond range value of it: " << (int)i << endl; return 0; }
Izlaz:
In function 'int main()': 19:7: warning : large integer implicitly truncated to unsigned type [-overflow] i = 2436; ^ Minimum value of i : 0 Maximum value of i : 255 Beyond range value of i : 132
Različite varijacije
1. 8-bitni cijeli broj bez predznaka fiksne širine: uint8_t
To znači dajte mi nepredpisani int od točno 8 bita.
2. Minimalna širina nepredznačenog 8-bitnog cijelog broja: uint_najmanje8_t
To znači dajte mi najmanji tip unsigned int koji ima najmanje 8 bitova. Optimizirano za potrošnju memorije.
3. Najbrži 8-bitni cijeli broj bez predznaka minimalne širine: uint_fast8_t
To znači dajte mi nepredpisani int od najmanje 8 bita što će moj program učiniti bržim. Može odabrati veću vrstu podataka zbog razmatranja poravnanja. Optimizirano za brzinu.
Stoga je uint8_t zajamčeno širok točno 8 bita. Uint_least8_t je najmanji cijeli broj zajamčeno širok najmanje 8 bita. Uint_fast8_t je najbrži cijeli broj zajamčeno širok najmanje 8 bita.
Dakle, prošireni integralni tipovi nam pomažu u pisanju prijenosni i učinkovita kodirati.
stopala protiv stopala