計算機是由 cpu 儲存器,輸入輸出裝置這些基本硬體組成的,滿足馮諾伊漫體系,可是這些硬體只能識別基本的0 1序列,所以也就決定了我們的資料在計算機必須按照按照二進位制進行儲存。
在數學中,我們常用的數為正數,負數,和0這三種,那我們常用的這三種數在計算機中到底是怎麼儲存的呢,我們先來說說正整數,負整數,0,在計算機中是怎樣儲存的,毫無疑問它們在計算機中都是以二進位制進行儲存的如+3,-4,在計算機中我們管這些數稱為有符號數,而我們把3,4稱為無符號數。
那在計算機中我們是怎樣儲存我們的有符號整數的呢,我們用0和1代表符號位,最高位為0,則表示這個數為正數,為1表示這個數為負數。然後我們根據十進位制轉換為二進位制的規則將十進位制數轉換為二進位制數。如果這個數為正整數,那轉化後的資料就是它在記憶體中儲存的資料,如果這個數為負數,那我們的把轉換後的二進位制數的各位除符號位外依次去反,即得我們的反碼,然後我們在將得到的二進位制數加1,這時記憶體得到的數將是我們記憶體中所儲存的數。
為什麼要將負數在記憶體中存成反碼的形式呢?當然是為了我們更好的進行整數和負數的加減乘除運算呀,如果我們不加以轉換,那這些數經過cpu操作後,將不會得到我們想要的運算結果,如果是進行運算的兩個數為正數,就可以直接運算,如果一正一負,則我們必須將負數轉換為補碼儲存在我們的記憶體中,這樣在經過cpu 運算後,我們才會得到我們想要的結果,符合我們的實際,所以這就是我們需要轉換的原因啦!
以上我們看了正整數和負整數在補碼中的儲存,但在實際中我們會用到大量的帶小數點的數,那這些帶小數點的數是怎樣在記憶體中儲存的呢?這個,我們明天再看。
資料在記憶體中的儲存
身為乙個天天處理資料的人,不得不說資料在記憶體中的儲存是必須要知道的問題。首先,資料在記憶體中的儲存涉及到作用域,儲存位置等方面的問題。根據資料的作用域,可將資料劃分為區域性變數和全域性變數 區域性變數的作用域為從定義開始到函式執行結束 全域性變數的作用域從程式開始到程式結束。計算機的記憶體分配可以...
資料在記憶體中的儲存
大端,把乙個數字高位位元組序的內容儲存到低位址,低位位元組序內容儲存到高位址處 小端,把乙個數字高位位元組序的內容儲存到高位址,低位位元組序內容儲存到低位址處 判斷乙個機器是大端還是小端?指標判斷 int checksys 聯合體 共用體 union un int main 這裡首先需要知道的是,例...
資料在記憶體中的儲存
我們都知道在計算機中資料型別都有 char 1 short 2 int 4 long 4 8 float 4 double 8 等內建型別,以及他們所佔的空間大小。型別的意義 1.使用這個型別開闢記憶體空間的大小 大小決定使用範圍 2.如何看待記憶體空間的視角。型別歸類 整形家族 char unsi...