當前位置:首頁 » 存儲配置 » 二進制存儲格式化

二進制存儲格式化

發布時間: 2023-01-05 03:52:12

① 硬碟格式化只是把數據刪掉了嗎

不是,硬碟格式化不是叫硬碟毀數據。簡單說格式化是把原有硬碟存儲空間進行了重新調整和標記。遇到有數據的區域就將原有數據在硬碟上的二進制存儲形式的文件,文件頭部寫成特殊標記不可直接識別,視為無用將來再有數據存儲需要這個空間可以存放數據而已。如果不被後面再放的數據覆蓋,那麼完全可以用專業軟體恢復這個特殊標記後就可以再次查看並讀取了。否則數據恢復軟體是怎麼恢復數據的呢?

② 二進制怎麼算

運行calc打開計算器,點擊「查看」-「科學型」,輸入十進制數,再點擊「二進制」。
以上是最通俗的方法,後面的方法就要動腦了,請先做好心理准備。

十進制轉二進制:
將十進制數除以2,記錄余數1(整除則記0),然後結果繼續除以2,直到最後1/2=0餘1為止,然後把所有記錄下的數倒過來排列,就是二進制結果。
比如39,反復除以2的余數依次是111001,則二進制數的39就是100111。多試幾次就熟練了。
當然這是最笨的方法。實際使用中不會真的這樣算。比較實用的方法是尋找2的倍數的「最近值」。比如39,39 = 32+7 = 32+4+3 = 32+4+2+1。
那麼:32是2的5次方,二進制就是後面有5個0,即:100000。以此類推,4(100),2(10),1(1),所以加起來就是100111。
這個方法需要事先熟悉2的各次方(冪)對應的十進制數。2的0~10次冪依次為:1,2,4,8,16,32,64,128,256,512,1024

③ c#語言二進制數字格式化輸出

static void Main(string[] args)
{
string str = string.Empty;
for(int i=1;i<=1023;i++)
{
str = Convert.ToString(i,2);
str = str.PadLeft(10, '0');
Console.WriteLine("{0}\t{1}", i, str);
}
Console.Read();
}

④ 用c語言打開文本文件,然後以二進制保存

這些都是c語言打開文件函數fopen的一個參數打開文件方式的值:
定義函數
file
*
fopen(const
char
*
path,const
char
*
mode);
函數說明
參數path字元串包含欲打開的文件路徑及文件名,參數mode字元串則代表著流形態。
mode有下列幾種形態字元串:
r
打開只讀文件,該文件必須存在。
r+
打開可讀寫的文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,只允許讀寫數據。
rt+
讀寫打開一個文本文件,允許讀和寫。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。
wb
只寫打開或新建一個二進制文件;只允許寫數據。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
wt+
讀寫打開或著建立一個文本文件;允許讀寫。
at+
讀寫打開一個文本文件,允許讀或在文本末追加數據。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數據。
上述的形態字元串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b
字元用來告訴函數庫打開的文件為二進制文件,而非純文字文件。不過在posix系統,包含linux都會忽略該字元。由fopen()所建立的新文件會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)許可權,此文件許可權也會參考umask
值。
自己看吧

⑤ 二進制、八進制、十進制、十六進制是如何相互轉化的越詳細越好

舉例說明 整數513。

1 以以十進製表示就是513

以十六進製表示0x0201(以0x開頭表示16進制,其實是0x00000201)

以8進製表示1001

以二進製表示1000000001(前面的一堆0省略了)

2說明,其實在計算機內部,所有的數據都是以二進制存儲,還以513為例,在計算機內部表示如下:

即二進制的

00000000 00000000 00000010 00000001

把每8個bit位合成為一個位元組,即成為用16進製表示,可顯示為

0x00 00 02 01 (空格是為了表達清楚)

如果把每3個bit合成為一個單元,即成為8進製表示

1001(一堆表示數值的0都省略了)

3以上是理論說明,實際應用時,都有對應的格式化函數來解決,不需要你費心這些瑣碎的問題

⑥ 二進制數據,文本數據,格式化數據的區別(matlab)

文件分為許多段,一般.text存放代碼,.data段存放數據,不同段是有不同屬性的,例如.text段的屬性是可執行的。這樣就區別了代碼和數據。

2.CPU指令有一個格式,一個指令包括了操作碼(對應你的指令)和操作數(對應你的數據),而指令本身相對格式是固定的(可能變長)。所以CPU是很容易知道前幾個二進制是什麼指令,而根據這個指令又可以知道後面多少位是第一個數據,後面多少位是第二個數據。然後下一個指令的起始地址是直接存在IP寄存器里的。

⑦ MIDI二進制文件格式簡析

本文主要參考自 Official MIDI Specifications

每個MIDI文件由一系列 chunk 組成,每個 chunk 的前四個位元組為魔數( magic number ),是由四個ASCII字元所組成的類型標識。目前標准格式中已定義的 chunk 類型只有 header 和 track 兩種,其魔數分別為 "MThd" 和 "MTrk" ,對於類型未被定義的 chunk 則應該被忽略。

每個 chunk 在其四字元類型之後緊跟一個32位無符號整數,意味這一 chunk 後續將要讀入的位元組個數,每個 chunk 已經讀入的這八個位元組不包含在內。

通常來說,一個MIDI文件中首先要存在一個 header chunk ,然後一系列 track chunk 緊隨其後,格式大致如下:

在目前的標准中, header chunk 長度固定為14,其由五個部分所組成:

其中 type 固定為 "MThd" , format ntrks division 均為16位,因此 length 固定為 0x00000006 。

format 指定了整個文件的組織結構,在當前的標准下,僅支持 0x0000 、 0x0001 、 0x0002 這三種可能的值。

ntrks 表示整個文件中 track chunk 的總個數,對於 format 為零的文件來說 ntrks 的值總是 0x0001 。

最後的 division 表示了 delta-times 的含義,有 metrical time 和 time-code-based time 這兩種形式,這取決於其最高位是否為零。

假如 division 最高位為零,那麼就屬於 metrical time 形式,這個16位無符號整數的意義為每個四分音符的ticks個數。否則屬於 time-code-based time 形式,其低8位表示每幀的ticks個數,高8位為一個8位負數補碼,有 -24 、 -25 、 -29 、 -30 這四種可能的值,其意義與 SMPTE 有關,以下內容摘抄自維基網路:

在這里可以發現,憑借 division 是完全不足以描述每個時間間隔的實際長度的。在規范中對此有所說明,在默認情況下,樂曲的節奏為4/4拍,速度為每分鍾120拍。這類元數據應該在MIDI文件中被指定,對於 format 為 0x0000 的文件應處於其 track chunk 的開始,對於 format 為 0x0001 的文件應包含在第一個 track chunk 之內,對於 format 為 0x0002 的文件應包含在每個 track chunk 之中。

值得一提的是,未來的標准有可能會定義更多種類的 format 和 chunk ,甚至有可能為 header chunk 添加更多的參數從而使其 length 不再為 0x00000006 ,因此對於程序的實現者來說,遵守標準是十分必要的。

無論 format 的取值是什麼, Track Chunks 的結構都是一致的:

length 後是一串連續的 MTrk event ,每個 MTrk event 由兩部分組成:

這里的 delta-time 是一種 variable-length quantity ,其每個位元組僅有7個有效位,最高位若非零則說明後面還有下一位元組,最多可占據四個位元組,因此其最大值為 0x0fffffff 。以下為參考示例:

delta-time 後緊跟的 event 有三種不同的類型:

MIDI event 的第一個位元組通常表示 running status ,其最高位必須非零,對於 sysex event 和 meta-event 來說,這個位元組分別為 0xf0 或 0xff 。

在每個 track chunk 中出現的第一個 MIDI event 必須指定 running status ,而對於後續的 MIDI event ,假如其緊跟在一個 MIDI event 後面,並且與前一個 MIDI event 有著同樣的 running status ,那麼這一個 MIDI event 的 running status 可以被省略。

每個 MIDI event 根據其 running status 高4位的不同而存在一個或兩個單位元組參數,這些參數的最高位均為零, running status 的低4位表示 channel 的編號,每個 MIDI event 只會在對應的 channel 上造成影響。舉幾個例子,以16進製表示:高4位為 C 意為 Program Change ,其跟隨一個單位元組參數,表示修改樂器音色;高4位為 9 意為 Note On ,高4位為 8 意為 Note Off ,這兩者都跟隨兩個單位元組參數,分別表示音高與力度。

中央C在 MIDI event 中的值為 0x3c ,每升高半音則加一,每降低半音則減一,通過這種規律可以推斷出標准音為 0x45 。

channel 最多有16個,每個 channel 之間是獨立的,也就是說不同的 channel 可以通過 Program Change 同時使用不同的音色,而又由於 Note On 和 Note Off 也是獨立的,因此同一個 channel 中也可以同時播放不止一個音符。不過打擊樂通常位於第10號 channel 。

音色對照表見文章末尾。

這是一種結構稍顯復雜的事件信息,它可以包含一連串的 sysex event ,其基本結構如下:

這里 length bytes 的長度,如果 bytes 不以 0xf7 結尾,那麼其後就要跟隨一個變長的 delta-time ,然後在跟隨下一個 sysex event ,就像這樣:

除第一個 sysex event 之外,後續跟隨的 sysex event 首位元組應為 0xf7 ,且最後一個 sysex event 的最後一位元組應為 0xf7 。以下是一串合法的 sysex event 示例:

以上部分的 0x8148 和 0x64 分別表示200-tick delta-time 和100-tick delta-time 。

這一部分的格式是比較固定的:

所有 meta-event 以 0xff 起始,然後緊跟一個位元組的 type ,再然後跟隨一個變長的 length length 的值即為 bytes 的長度。

在 Standard MIDI Files 1.0 中已經預定義了一部分 meta-event ,其中 Copyright Notice 應作為第一個 track 的第一個 event , Sequence Number 和 Sequence/Track Name 若存在則必須在任何 delta-times 非零的 event 前出現, End of Track 必須作為每個 track 的最後一個 event 。

Set Tempo 參數的意義為每個四分音符的微秒數。

Time Signature 參數的意義分別為節奏的分子、以二為底取得節奏分母的對數、節拍器每響一次的 MIDI clocks 個數、每個四分音符所包含的三十二分音符個數(最後這個我也不理解有什麼意義),比如以下示例:

Key Signature 的第一個參數表示樂曲經過了移調所添加的升降號個數,第二個參數取 0x00 或 0x01 意為大調或小調。

以下音色對照表引用自 General MIDI System Level 1

⑧ C語言文件保存成二進制

1、使用fopen函數打開的時候,使用"wb"模式就可以保存二進制保存文件。

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 字元用來告訴函數庫打開的文件為二進制文件,而非純文字文件。
返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。

2、例子:

FILE*in,*out;
in=fopen("c:\p.png","rb");
out=fopen("c:\out.txt","wb");
chars[255]={0};
while(!feof(in))
{
intc=fgetc(in);
sprintf(s,"0x%x",c);
fputs(s,out);
}
return0;

⑨ C++中怎麼將二進制數據轉換成ASC碼

你存在txt文件中的已經是二進制文件了,你打開txt文件時,操作系統會自動對這個二進制數據進行編碼轉換(如果你安裝的是中文操作系統的話一般會用unicode編碼轉換,英文操作系統的話會用ASC編碼轉換),所以你看到的是系統轉換後的樣式。
如果你想在打開txt文件時看到的是二進格式的數字,那你只有先把double型數組轉換成字元型然後保存到文件中就可以了!

python格式化二進制數

(8-len(bin(1)[2:])%8)*'0'+bin(1)[2:]
(8-len(bin(100000)[2:])%8)*'0'+bin(100000)[2:]

如果解決了您的問題請採納!
如果未解決請繼續追問

熱點內容
android運行時 發布:2025-07-27 22:39:21 瀏覽:953
音頻剪輯需要哪些配置 發布:2025-07-27 22:38:26 瀏覽:459
小盒編程下載 發布:2025-07-27 22:22:53 瀏覽:412
c語言統計數字字元個數 發布:2025-07-27 22:22:09 瀏覽:829
網店用阿里雲伺服器 發布:2025-07-27 22:20:59 瀏覽:270
外賣點菜機有哪些配置 發布:2025-07-27 22:20:23 瀏覽:753
linux運維技術 發布:2025-07-27 22:20:20 瀏覽:633
aes加密python 發布:2025-07-27 21:55:45 瀏覽:94
php生成表格 發布:2025-07-27 21:54:37 瀏覽:827
怎麼查看網頁密碼 發布:2025-07-27 21:20:43 瀏覽:261