C語言修煉之路數(shù)據類型悟正法?解析存儲定風魔上篇

(壹) 數(shù)據類型介紹
前面我們已經學習了基本的內置類型,以及他們所占存儲空間的大小。:

類型的意義:
- 使用這個類型開辟內存空間的大?。ù笮Q定了使用范圍)。
- 如何看待內存空間的視角。
1.1 類型的基本歸類
整形家族:

浮點數(shù)家族:

構造類型:

指針類型

空類型:


(貳)整形在內存中的存儲
我們之前講過一個變量的創(chuàng)建是要在內存中開辟空間的。
空間的大小是根據不同的類型而決定的。
那接下來我們談談數(shù)據在所開辟內存中到底是如何存儲的?
比如:

我們知道為a分配四個字節(jié)的空間。 那如何存儲?
2.1 原碼、反碼、補碼
計算機中的有符號數(shù)(整數(shù))有三種表示方法,即原碼、反碼和補碼。
三種表示方法均有符號位和數(shù)值位兩部分,符號位都是用0表示“正”,用1表示“負”,而數(shù)值位三種表示方法各不相同。






2.2 深入解析
正數(shù)的原、反、補碼都相同。
對于整形來說:數(shù)據存放內存中其實存放的是補碼。

為什么呢?

舉例解析1:


舉例解析2
了解一下計算機的底層概念,我們人腦可以很輕松的知道機器數(shù)的第一位是符號位,但對于計算機基礎電路設計來說判別第一位是符號位是非常難和復雜的事情,為了讓計算機底層設計更加簡單,人們開始探索將符號位參與運算,并且采用只保留加法的方法,我們知道減去一個數(shù),等于加上這個數(shù)的負數(shù),即:1-1 = 1 + (-1) = 0,這樣讓計算機運算就更加簡單了,并且也讓符號位參與到運算中去。


因為補碼能多存儲一個-128,而且在計算機底層中存儲的是補碼,所以在計算機中一個8位的二進制數(shù)的存儲范圍是用補碼表示的[-128,127],而不是用原碼或反碼表示的[-127,127]。這也可以解釋為什么計算機中一個字節(jié)的取值范圍是[-128,127]。
這樣也能夠回答我們開始提出的問題了,原碼、反碼、補碼的使用,是人們?yōu)榱俗尫栁荒軈⑴c運算并讓計算機底層運算更加簡單而設計出來的數(shù)據存儲表示方式。


到此這篇關于C語言修煉之路數(shù)據類型悟正法 解析存儲定風魔上篇的文章就介紹到這了,更多相關C語言 數(shù)據類型內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
好用的C++ string Format“函數(shù)”介紹
大家好,本篇文章主要講的是好用的C++ string Format“函數(shù)”介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
Qt中PaintEvent繪制實時波形圖的實現(xiàn)示例
本文主要介紹了Qt中PaintEvent繪制實時波形圖的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06
C語言嵌入式實現(xiàn)支持浮點輸出的printf示例詳解
這篇文章主要為大家介紹了C語言嵌入式實現(xiàn)支持浮點輸出的printf示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01

