Tzn pytanie wynika troszkę z niezrozumienia typów.
typy zmiennych nie zostały wymyślone po to aby wprowadzać jakieś tam sztuczne ograniczenia. Wiążą się one ściśle z ilością BAJTÓW które przypadają na dany typ. Przy czym nazwa typu jest ściśle umowna.
a zatem, jaki zakres uzyskasz w jednym bajcie ???
chyba rozumiesz, że chcąc nie chcąc od 0 do 255 bo to wynika z wag poszczególnych bitów
128+64+32+16+8+4+2+1
i teraz nie ważne czy nazwiesz ten typ: unsigned char, uint8_t itd - to zawsze musisz pamiętać że jej zakres zależy od ilości bajtów. Skoro jest jeden to masz od 0 do 255
jeśli weźmiesz dwa bajty, to wtedy masz od 0 do 65535
no ale tu mówimy o liczbach całkowitych bez znaku. Tymczasem jak weźmiesz sobie np typ:
char czy int8_t to masz zakres od -128 do 127
jeśli typ: int lub int16_t to masz zakres od -32768 do 32767
więc rozumiesz już chyba, że nie ma tu mowy o jakichś innych ograniczeniach niż rozmiary związane z bajtami. Całą resztę robisz sobie programowo i wcale nie musi to zależeć od jakichś klawiszy - jak piszesz wyżej. W dowolnej części programu możesz to robić. Żeby to lepiej zrozumieć spróbuj sobie prześledzić jak wyglądają binarne postaci takich liczb (typów), dla uproszczenia weźmy tylko 4 bity
0000 - 0
0001 - 1
0010 - 2
0011 - 3
0100 - 4
0101 - 5
0110 - 6
0111 - 7
1000 - 8
1001 - 9
1010 - 10
1011 - 11
1100 - 12
1101 - 13
1110 - 14
1111 - 15
.... czyli liczby od 0 do 15. Gdyby był taki typ to taki miałby zakres. Wiadomo że jeśli do
1111 + 1 = 0000
dlatego się licznik przekręca
a jak sobie wyobrażasz teraz np ograniczenie tego zakresu do np od 0 do 11 ???, przecież jeśli
1011 + 1
to będzie się to równać
1100 czyli = 12
więc żeby robić takie ograniczenia to procesory musiałyby mieć co ? wszczepione jakieś moduły sprzętowe do pilnowania tych zakresów ? a co z typami ? z językami ? sprzęt to sprzęt i jest niezależny od języka w tym względzie
teraz jaśniej ?
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]