這裡要注意:只要牽涉到 long、double 這兩個詞的,可能會因為編譯器不同而導致位元組數量不同。例如有一些 C 語言的編譯器就將 long 的大小定為 8 bytes(我手上的 Dev-C++ 附帶的編譯器則是 4 bytes)。其餘也有 long long 或是 long double 之類的型態,但一樣依編譯環境不同而相異,有興趣或有需要的可以再去找找看。
以 short 來說,假設今天我想要儲存 4567 這個數,那這兩個連在一起的位元組就會分別被存入「00010001 11010111」。
設計 C 語言的工程師為了方便(畢竟計算的時候常常需要用到負數),就把大部分的基本資料型態安插了一個稱為「補數」的機制(因為這個機制有點複雜,所以想要的人就自己去 Google 吧)。他們把大約其中一半的空間挪到負數,這樣就可以避免想用到負數的時候卻沒得使用的窘境。因此,當我們在使用 int、short、long、float、double 這幾種型態的時候,都是支援負數的。