當前位置:首頁 » 服務存儲 » 二進制內存存儲機制
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

二進制內存存儲機制

發布時間: 2022-05-25 00:03:32

⑴ 內存卡儲存的原理

存儲原理,還是要從EPROM和EEPROM說起。 EPROM是指其中的內容可以通過特殊手段擦去,然後重新寫入。其基本單元電路(存儲細胞)如下圖所示,常採用浮空柵雪崩注入式MOS電路,簡稱為FAMOS。它與MOS電路相似,是在N型基片上生長出兩個高濃度的P型區,通過歐姆接觸分別引出源極S和漏極D。在源極和漏極之間有一個多晶硅柵極浮空在SiO2絕緣層中,與四周無直接電氣聯接。這種電路以浮空柵極是否帶電來表示存1或者0,浮空柵極帶電後(譬如負電荷),就在其下面,源極和漏極之間感應出正的導電溝道,使MOS管導通,即表示存入0。若浮空柵極不帶電,則不形成導電溝道,MOS管不導通,即存入1。 EEPROM基本存儲單元電路的工作原理如下圖所示。與EPROM相似,它是在EPROM基本單元電路的浮空柵的上面再生成一個浮空柵,前者稱為第一級浮空柵,後者稱為第二級浮空柵。可給第二級浮空柵引出一個電極,使第二級浮空柵極接某一電壓VG。若VG為正電壓,第一浮空柵極與漏極之間產生隧道效應,使電子注入第一浮空柵極,即編程寫入。若使VG為負電壓,強使第一級浮空柵極的電子散失,即擦除。擦除後可重新寫入。 快閃記憶體的基本單元電路如下圖所示,與EEPROM類似,也是由雙層浮空柵MOS管組成。但是第一層柵介質很薄,作為隧道氧化層。寫入方法與EEPROM相同,在第二級浮空柵加以正電壓,使電子進入第一級浮空柵。讀出方法與EPROM相同。擦除方法是在源極加正電壓利用第一級浮空柵與源極之間的隧道效應,把注入至浮空柵的負電荷吸引到源極。由於利用源極加正電壓擦除,因此各單元的源極聯在一起,這樣,快擦存儲器不能按位元組擦除,而是全片或分塊擦除。 到後來,隨著半導體技術的改進,快閃記憶體也實現了單晶體管(1T)的設計,主要就是在原有的晶體管上加入了浮動柵和選擇柵, 在源極和漏極之間電流單向傳導的半導體上形成貯存電子的浮動棚。浮動柵包裹著一層硅氧化膜絕緣體。它的上面是在源極和漏極之間控制傳導電流的選擇/控制柵。數據是0或1取決於在硅底板上形成的浮動柵中是否有電子。有電子為0,無電子為1。 快閃記憶體就如同其名字一樣,寫入前刪除數據進行初始化。具體說就是從所有浮動柵中導出電子。即將有所數據歸「1」。 寫入時只有數據為0時才進行寫入,數據為1時則什麼也不做。寫入0時,向柵電極和漏極施加高電壓,增加在源極和漏極之間傳導的電子能量。這樣一來,電子就會突破氧化膜絕緣體,進入浮動柵。 讀取數據時,向柵電極施加一定的電壓,電流大為1,電流小則定為0。浮動柵沒有電子的狀態(數據為1)下,在柵電極施加電壓的狀態時向漏極施加電壓,源極和漏極之間由於大量電子的移動,就會產生電流。而在浮動柵有電子的狀態(數據為0)下,溝道中傳導的電子就會減少。因為施加在柵電極的電壓被浮動柵電子吸收後,很難對溝道產生影響。

c語言中採用二進制文件存儲數據的問題

1、二進制文本使用fopen函數的二進制模式「rb」就可以打開。對於程序來說,不管後綴名如何,文件分為兩種類型:文本文件和二進制文件。 C語言里有一系列文件操作函數。區分文本和二進制文件,需要在打開文件時設置不同的控制符mode的變數即可。
2、fopen的函數原型:FILE * fopen(const char * path,const char * mode);
fopen函數的第一個參數是文件路徑,第二個參數是打開方式,有以下幾種方式:
r 以只讀方式打開文件,該文件必須存在。
r+ 以可讀寫方式打開文件,該文件必須存在。
rb+ 讀寫打開一個二進制文件,允許讀數據。
rw+ 讀寫打開一個文本文件,允許讀和寫。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)
wb 只寫打開或新建一個二進制文件;只允許寫數據。
wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。
wt+ 讀寫打開或著建立一個文本文件;允許讀寫。
at+ 讀寫打開一個文本文件,允許讀或在文本末追加數據。
ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。
上述的形態字元串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函數庫打開的文件為二進制文件,而非純文字文件。
3、常式:
#include <stdlib.h>

#include<stdio.h>
intmain()
{
FILE*fpPhoto,*fpText,*fpTarget;
intiRead;
charszBuf[100];

printf("請輸入第一個文件名(jpg): ");
gets(szBuf);
fpPhoto=fopen(szBuf,"rb");
printf("請輸入第二個文件名(txt): ");
gets(szBuf);
fpText=fopen(szBuf,"rb");
printf("請輸入目的文件名(jpg): ");
gets(szBuf);
fpTarget=fopen(szBuf,"wb");

if(!fpPhoto||!fpText||!fpTarget)
{
printf("打開文件失敗! ");
system("pause");
return-1;
}

while((iRead=fread(szBuf,1,sizeof(szBuf),fpPhoto))>0)
fwrite(szBuf,1,iRead,fpTarget);
while((iRead=fread(szBuf,1,sizeof(szBuf),fpText))>0)
fwrite(szBuf,1,iRead,fpTarget);

fclose(fpPhoto);
fclose(fpText);
fclose(fpTarget);
return0;
}

⑶ 能不能給我講講C語言中實數的二進制形式,是怎樣存儲的

1、float類型數字在計算機中用4個位元組(32位)存儲。

遵循IEEE-754格式標准:
一個浮點數由3部分組成:符號位s(1位)和、指數e(8位)、底數m(23位)

2、格式
SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM

S:符號位
E:指數,十進制指數加上127後的值得二進制數據
M:底數

3、符號位

指底數的符號,可正可負。

4、指數

佔用8bit的二進制數,可表示數值范圍為0-255。

但是指數可正可負,所以,IEEE規定,此處算出的次方必須減去127才是真正的指數。

所以,float類型的指數可從-126到128

5、底數

實際是佔用24bit的一個值,但是最高位始終為1,所以,最高位省去不存儲,在存儲中佔23bit
科學計數法。

再舉一例:
17.625在內存中的存儲

首先要把17.625換算成二進制:10001.101

在將10001.101右移,直到小數點前只剩1位:
1.0001101 * 2^4 因為右移動了四位

底數:因為小數點前必為1,所以IEEE規定只記錄小數點後的就好。所以,此處的底數為:0001101
指數:實際為4,必須加上127(轉出的時候,減去127),所以為131。也就是10000011
符號:整數,所以是0


綜上所述,17.625在內存中的存儲格式是:
01000001 10001101 00000000 00000000

⑷ 為什麼內存卡存在的容量都是2進制的 比如 64 128 256 512 有個朋友說見過654的 可能么

如果是完好的產品,654的絕對不可能,除非是壞掉的

計算機的內存卡是用存儲單元構成的,單元是以512Byte或是2048Byte為基本單位的。

單元的組合方式也是成對出現,所以就都是2進制的容量了

出現非2整數冪的情況除非是有單元壞了

但是因為654/2=327,連基本單元的條件都不滿足,所以這個是絕對不能存在的

硬碟、內存、光碟的存儲原理

通俗的講存儲就是把信息以0和1的狀態保存起來,用電子表現的形式是高電壓和低電壓,或者是開和關。在光碟里是用凹凸來表示的,當激光頭射在光碟上的時候,光線經過凹凸的表面反射的光線也不一樣,計算機識別後用高低不同的電壓表示凹凸的表面,這樣光碟的信息就轉換成了電信號。
內存存儲信息時是需要電壓支持的,所以關機以後沒有了電,電子管恢復到了原來的狀態,信息就沒有了。而硬碟就像是一張可擦寫的光碟一樣是不需要電來保持數據狀態的,但是改變數據的時候需要電。

⑹ c語言中,數字以二進制儲存,那字元是否也以二進制儲存的

二進制110.11=1×22+1×21+0×20+1×2-1+1×2-2=4+2+0+0.5+0.25=6.75
為了讓大家更加詳細了解二進制加減法的運算過程,我們提供了兩張示意圖。
1)二進制加法:0001+0001=0010

2)二進制減法:0010-0001=0001

而在我們的內存中,數據就是以二進制的形式存儲的。
接下來我們來了解一下內存中數據的存儲。
大家可能並不了解,其實計算機要處理的信息是多種多樣的,如十進制數、文字、符號、圖形、音頻、視頻等,這些信息在人們的眼裡是不同的。但對於計算機來說,它們在內存中都是一樣的,都是以二進制的形式來表示。
所以我們必須了解二進制後才能夠更好地學習編程,因為它是計算機處理數據的基礎。
需要大家理解的是內存條是一個非常精密的部件,包含了上億個電子元器件,所以這些元件小到基本達到了納米級別,而它們實際上就是電路;電路的電壓會變化,要麼是0V,要麼是5V,只有這兩種電壓。5V是通電,用1來表示,0V是斷電,用0來表示。按這個原理推想,一個元器件有2種狀態,0或者1。
所以當我們通過電路來控制這些元器件的通斷電,會得到很多0、1的組合。舉個例子:8個元器件有28=256種不同的組合,16個元器件有216=65536種不同的組合。盡管一個元器件只能表示2個數值,但是多個結合起來就可以表示很多數值了。
根據以上的原理:我們可以給每一種組合賦予特定的含義,例如,可以分別用1101000、00011100、11111111、00000000、01010101、10101010來表示C、語、言、中、文、網這幾個字,那麼結合起來就表示」C語言中文網「。
但是在一般情況下我們不一個一個的使用元器件,而是將8個元器件看做一個單位,即使表示很小的數,例如1,也需要8個,也就是00000001。
所以在內存的思想中是沒有abc這樣的字元或者gif、jpg這樣的圖片的,只有0和1兩個數字,計算機也只認識0和1。所以我們計算機只能使用二進制,而不是我們熟悉的十進制,所以被寫入內存中的數據都會被轉換成0和1的組合。

⑺ 計算機儲存原理

動態存儲器(DRAM)的工作原理

動態存儲器每片只有一條輸入數據線,而地址引腳只有8條。為了形成64K地址,必須在系統地址匯流排和晶元地址引線之間專門設計一個地址形成電路。使系統地址匯流排信號能分時地加到8個地址的引腳上,藉助晶元內部的行鎖存器、列鎖存器和解碼電路選定晶元內的存儲單元,鎖存信號也靠著外部地址電路產生。

當要從DRAM晶元中讀出數據時,CPU首先將行地址加在A0-A7上,而後送出RAS鎖存信號,該信號的下降沿將地址鎖存在晶元內部。接著將列地址加到晶元的A0-A7上,再送CAS鎖存信號,也是在信號的下降沿將列地址鎖存在晶元內部。然後保持WE=1,則在CAS有效期間數據輸出並保持。

當需要把數據寫入晶元時,行列地址先後將RAS和CAS鎖存在晶元內部,然後,WE有效,加上要寫入的數據,則將該數據寫入選中的存貯單元。

由於電容不可能長期保持電荷不變,必須定時對動態存儲電路的各存儲單元執行重讀操作,以保持電荷穩定,這個過程稱為動態存儲器刷新。PC/XT機中DRAM的刷新是利用DMA實現的。

首先應用可編程定時器8253的計數器1,每隔1⒌12μs產生一次DMA請求,該請求加在DMA控制器的0通道上。當DMA控制器0通道的請求得到響應時,DMA控制器送出到刷新地址信號,對動態存儲器執行讀操作,每讀一次刷新一行。

(7)二進制內存存儲機制擴展閱讀

描述內、外存儲容量的常用單位有:

1、位/比特(bit):這是內存中最小的單位,二進制數序列中的一個0或一個1就是一比比特,在電腦中,一個比特對應著一個晶體管。

2、位元組(B、Byte):是計算機中最常用、最基本的存在單位。一個位元組等於8個比特,即1 Byte=8bit。

3、千位元組(KB、Kilo Byte):電腦的內存容量都很大,一般都是以千位元組作單位來表示。1KB=1024Byte。

4、兆位元組(MBMega Byte):90年代流行微機的硬碟和內存等一般都是以兆位元組(MB)為單位。1 MB=1024KB。

5、吉位元組(GB、Giga Byte):市場流行的微機的硬碟已經達到430GB、640GB、810GB、1TB等規格。1GB=1024MB。

6、太位元組(TB、Tera byte):1TB=1024GB。最新有了PB這個概念,1PB=1024TB。

⑻ 請教變數數據在內存中的存儲方式,比如int a=2,那麼在內存中是怎麼存儲的呢

額 你理解錯了 。 跟本就不存在a的ASCII碼值。
這樣看:定義了一個變數,給它取個名字叫a,這個名字是給你程序員看的,計算機跟本不看這個a,a對計算機來說只是一個標識,它標識著在內存中所佔用的一個大小為4B的內存空間,並且!這4B的空間存放一個整數,其值為2. 而在存儲的時候是這樣存的
由於內存的最小單位是位元組,也就是1B是最小的單位,而一個int類型的數據在32的系統中要佔用32位大小, 換算一個 8位=1位元組 即8bit=1B 那麼32位=4位元組。 這個2轉換成二進制數是10 ,但計算機要求用32位的數來存放這個2 ,咋辦? 補0唄。在哪補? 肯定不能在後邊補啊,那就變成別的數了—— 那,那就在前補。
所以是00000000 00000000 00000000 00000010
以上便是2這個數在計算機內存中的形式, 每8位一組分成4組剛好是4B大小,所以內存中就有連著的4個內存單元 來存放這個數值2. 而這一內存單元我們把它叫做a, 計算機也正是通過這個名字來標識這個數。
綜上,總結一下,a這個字母是給程序員看的, 計算機不認識a這字母,a在計算機中僅僅是轉換為一個計算機用於標識這個數值2的其它的什麼東西。 具體是什麼東西你不必要了解,其實我也不知道。而這個2在內存中存放的形式是佔用4個內存單元的空間。
樓主想更深入了解這方面,建議把C語言學一遍後學學匯編語言就很清楚了

⑼ 存儲器對文件是怎樣存儲的機制是什麽

存儲器分為內存儲器(簡稱內存或主存)、外存儲器(簡稱外存或輔存)。外存儲器一般也可作為輸入/輸出設備。計算機把要執行的程序和數據存入內存中,內存一般由半導體器構成。半導體存儲器可分為三大類:隨機存儲器、只讀存儲器、特殊存儲器。
RAM
RAM是隨機存取存儲器(Random Access Memory),其特點是可以讀寫,存取任一單元所需的時間相同,通電是存儲器內的內容可以保持,斷電後,存儲的內容立即消失。RAM可分為動態(Dynamic RAM)和靜態(Static RAM)兩大類。所謂動態隨機存儲器DRAM是用MOS電路和電容來作存儲元件的。由於電容會放電,所以需要定時充電以維持存儲內容的正確,例如互隔2ms刷新一次,因此稱這為動態存儲器。所謂靜態隨機存儲器SRAM是用雙極型電路或MOS電路的觸發器來作存儲元件的,它沒有電容放電造成的刷新問題。只要有電源正常供電,觸發器就能穩定地存儲數據。DRAM的特點是集成密度高,主要用於大容量存儲器。SRAM的特點是存取速度快,主要用於調整緩沖存儲器。
ROM
ROM是只讀存儲器(Read Only Memory),它只能讀出原有的內容,不能由用戶再寫入新內容。原來存儲的內容是由廠家一次性寫放的,並永久保存下來。ROM可分為可編程(Programmable)ROM、可擦除可編程(Erasable Programmable)ROM、電擦除可編程(Electrically Erasable Programmable)ROM。如,EPROM存儲的內容可以通過紫外光照射來擦除,這使它的內可以反復更改。
特殊固態存儲器
包括電荷耦合存儲器、磁泡存儲器、電子束存儲器等,它們多用於特殊領域內的信息存儲。
此外,描述內、外存儲容量的常用單位有:
①位/比特(bit):這是內存中最小的單位,二進制數序列中的一個0或一個1就是一比比特,在電腦中,一個比特對應著一個晶體管。
②位元組(B、Byte):是計算機中最常用、最基本的存在單位。一個位元組等於8個比特,即1 Byte=8bit。
③千位元組(KB、Kilo Byte):電腦的內存容量都很大,一般都是以千位元組作單位來表示。1KB=1024Byte。
④兆位元組(MB Mega Byte):90年代流行微機的硬碟和內存等一般都是以兆位元組(MB)為單位。1 MB=1024KB。
⑤吉位元組(GB、Giga Byte):目前市場流行的微機的硬碟已經達到4.3GB、6.4GB、8.1GB、12G、13GB等規格。1GB=1024MB。
⑥太位元組(TB、Tera byte):1TB=1024GB。
(三)輸入/輸出設備
輸入設備是用來接受用戶輸入的原始數據和程序,並將它們變為計算機能識別的二進制存入到內存中。常用的輸入設備有鍵盤、滑鼠、掃描儀、光筆等。
輸出設備用於將存入在內存中的由計算機處理的結果轉變為人們能接受的形式輸出。常用的輸出設備有顯示器、列印機、繪圖儀等。
(四)匯流排
匯流排是一組為系統部件之間數據傳送的公用信號線。具有匯集與分配數據信號、選擇發送信號的部件與接收信號的部件、匯流排控制權的建立與轉移等功能。典型的微機計算機系統的結構如圖2-3所示,通常多採用單匯流排結構,一般按信號類型將匯流排分為三組,其中AB(Address Bus)為地址匯流排;DB(Data Bus)為數據匯流排;CB(Control Bus)控制匯流排。
(五)微型計算機主要技術指標
①CPU類型:是指微機系統所採用的CPU晶元型號,它決定了微機系統的檔次。
②字長:是指CPU一次最多可同時傳送和處理的二進制位數,安長直接影響到計算機的功能、用途和應用范圍。如Pentium是64位字長的微處理器,即數據位數是64位,而它的定址位數是32位。
③時鍾頻率和機器周期:時鍾頻率又稱主頻,它是指CPU內部晶振的頻率,常用單位為兆(MHz),它反映了CPU的基本工作節拍。一個機器周期由若干個時鍾周期組成,在機器語言中,使用執行一條指令所需要的機器周期數來說明指令執行的速度。一般使用CPU類型和時鍾頻率來說明計算機的檔次。如Pentium III 500等。
④運算速度:是指計算機每秒能執行的指令數。單位有MIPS(每秒百萬條指令)、MFLOPS(秒百萬條浮點指令)
⑤存取速度:是指存儲器完成一次讀取或寫存操作所需的時間,稱為存儲器的存取時間或訪問時間。而邊連續兩次或寫所需要的最短時間,稱為存儲周期。對於半導體存儲器來說,存取周期大約為幾十到幾百毫秒之間。它的快慢會影響到計算機的速度。
⑥內、外存儲器容量:是指內存存儲容量,即內容儲存器能夠存儲信息的位元組數。外儲器是可將程序和數據永久保存的存儲介質,可以說其容量是無限的。如硬碟、軟盤已是微機系統中不可缺少的外部設備。迄今為止,所有的計算機系統都是基於馮·諾依曼存儲程序的原理。內、外存容量越大,所能運行的軟體功能就越豐富。CPU的高速度和外存儲器的低速度是微機系統工作過程中的主要瓶頸現象,不過由於硬碟的存取速度不斷提高,目前這種現象已有所改善。

⑽ 文本文件在內存中的存儲不也是按照二進制數值方式存儲的嘛,那和二進制文件在內存中的存儲方式有何區別

文本文件中的內容是按「字元」存儲的。二進制文件中的數據是按二進制存儲的,比如要存儲12345這個數據,二進制文件中是00110000
00111001,只要兩個位元組,而文本文件中是1
2
3
4
5的ASCII碼共5個位元組。文字部分實際上仍然是字元型。