当前位置:网站首页>數據在內存中的存儲相關內容
數據在內存中的存儲相關內容
2022-06-25 13:13:00 【LIn_jt】
數據在內存中的存儲相關內容
我們已經知道,c語言中有以下這麼幾種變量類型,分別為:>
char //字符類型
short //短整型
int //整型
long //長整型
long long //更長的整型
float //單精度浮點數
double //雙精度浮點數
本文將介紹整型數據在內存中的存儲。
首先就是將整型類型歸一下類啦,要注意的是,char 類型也歸結到整型類型裏面,因為字符類型在內存中是以ascii碼值進行存儲的.
也即整型家族裏面一共有這幾比特成員:>
我們知道,在創建一個變量的時候,會相應的在內存中開辟一塊空間,那麼這個變量的數據是如何存儲在內存當中的?,我們需要先了解以下幾個內容:>
一.原碼反碼補碼
1.原碼:
按照該數據直接寫出的二進制比特就是該數的補碼,舉個栗子:
我們通過-1直接寫出來該二進制序列即為該數的原碼,要注意的是,該二進制序列最高比特為符號為,負數為1,正數為0
2.反碼:
反碼在原碼的基礎上,符號比特不變,其他比特按比特取反,還是上面的例子,我們看一下-1的反碼:>
![**[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rHAuNVSj-1637644746297)(C:\Users\MSI-NB\AppData\Roaming\Typora\typora-user-images\image-20211122232506362.png)]**](/img/e3/3104dbe088e3e02cbdc8c6668ae819.png)
3.補碼:
補碼在原碼的基礎上+1即可:
這就是我們那個熟悉的全1二進制序列了
因此,原反補的計算規則為:

補碼想轉化到原碼也即以上的逆過程,即補碼-1得到反碼,然後反碼符號比特不變,其他比特按比特取反即可.
上述討論是基於該數據是負數的情况下,實際上,若數據為正數,其原碼反碼補碼都是一樣的,舉個栗子

原碼反碼補碼都為該二進制序列。
而內存中存儲的都為補碼。可以用原碼計算一下-1+1,你會發現結果等於-2,常識告訴我們這是不可能的:

二.大小端存儲
我們先來看一下一個變量在內存中的存儲情况:

我們發現,這個變量在內存中是倒著存儲的,即44332211以此存儲,實際上,變量在內存中的存儲有兩種情况:
我們知道,44是a的低比特字節序,如果低比特字節序存放在高地址處,高比特字節序放在低地址處,則稱為大端存儲。
而以下

則稱其為小端存儲,即將低比特字節序的內容存放在低地址處,高比特字節序的內容存放在高地址處。
現在我們給出大端小端的概念:
大端存儲:指將數據的低比特字節序的內容存放在高地址處,高比特字節序的內容存放在低地址處。
小端存儲:指將數據的低比特字節序的內容存放在低地址處,高比特字節序的內容存放在高地址處。
現在我們設計一個程序來判斷vs環境下是大端存儲還是小端存儲,我們只需要看一個數據第一個字節中的內容即可,即


因此,我們只需要訪問到第一個字節的內容即可,那我們就需要用到一個char類型的指針變量。
我們設計出以下程序:>

結果是:>
因此,vs編譯器底下整型數據存儲為小端存儲。
边栏推荐
- 关于结构体,枚举,联合的一些知识
- J2EE from entry to earth 01 MySQL installation
- MySQL learning notes
- Assemble relevant knowledge points of flag bit (connected)
- Jupyter notebook theme font setting and automatic code completion
- QT display ffmpeg decoded pictures
- Serevlt初识
- 1024水文
- [machine learning] what is machine learning?
- Where is it safe to open an account for buying funds? Please give me your advice
猜你喜欢

515. Find Largest Value in Each Tree Row

How to implement a high-performance load balancing architecture?

nacos无法修改配置文件Mysql8.0的解决方法

Common colors for drawing

Sword finger offer II 032 Effective anagrams
模块五(微博评论)

《MongoDB入门教程》第01篇 MongoDB简介

The editor is used every day. What is the working principle of language service protocol?

美创入选“2022 CCIA中国网络安全竞争力50强”榜单

Capabilities required by architects
随机推荐
中国虚拟人哪家强?沙利文、IDC:小冰百度商汤位列第一梯队
Reload cuda/cudnn/pytorch
关于数据在内存中的存储下
WIN10环境下配置pytorch
模块五(微博评论)
字节跳动Dev Better技术沙龙来啦!参与活动赢好礼,限时免费报名中!
Sword finger offer II 032 Effective anagrams
Event triggered when El select Clear clears content
Sword finger offer day 1 stack and queue (simple)
And console Log say goodbye
剑指Offer 第 2 天链表(简单)
MySQL 学习笔记
Online service emergency research methodology
爱可可AI前沿推介(6.25)
Which Chinese virtual human is better? Sullivan, IDC: Xiaobing Baidu Shangtang ranks in the first echelon
剑指 Offer 第 1 天栈与队列(简单)
Introduction to mongodb chapter 01 introduction to mongodb
My first experience of go+ language -- a collection of notes on learning go+ design architecture
Sword finger offer day 3 string (simple)
Conway's law can not be flexibly applied as an architect?