C怎樣按位寫2進位制檔案

2022-05-18 15:01:10 字數 987 閱讀 9688

1樓:匿名使用者

你這裡的位域結構只用了1位,所以應該用資料和1做&操作即可.

但是你要知道,計算機中雖然最小儲存單位是位,但位不能脫離位元組單獨存在,資料儲存時的最小單位必須是位元組,所以檔案大小肯定是一樣的,除非你把每8個位重組成1個新的位元組,這樣檔案大小才能變成1/8

2樓:樸素派

你的意思是說按照二進位制嗎?那麼我有個不是辦法的辦法,就是直接用「/」「%」來做。用他們依次取餘數和整除2,就得到了吧,呵呵,笨方法。

c++應該有函式的,不過我想函式的方法也不會比這個方法簡單多少。

3樓:匿名使用者

fstream fout1("out.dat", ios::binary|ios::out); //這裡檔案的字尾應該是要寫的

for(i = 0; i < 10000; ++i)

//好像只能這麼寫,不能寫成&t.d,因為位域是不支援指標的,而且這個結構體的實際大小也並不是只有1個位元組

4樓:匿名使用者

按位?那就是以二進位制形式開啟,並用 fstream.write來寫入.

可以實驗一下

5樓:匿名使用者

tanyuguo - 榜眼 十二級

說得很有道理,按照你的方法寫入只有 1 bit的資料是完全可行的,但是在windows系統下,檔案大小的最小單位是位元組,你可以嘗試一次只寫 1 bit,而且只寫一次,關閉程式後,你會發現檔案的大小為 1 位元組。這是合乎邏輯的。

如果結構體如下

typedef struct

dm;void main();

outobj<>i>>j;

inobj.close();

printf("%d\t%c\t%d",i,j,sizeof(dm));

cout<

}你會發現寫入的檔案大小為 2 位元組,這說明 2 bit 佔了 2 位元組,也說明了上述問題。

c語言怎樣寫if大於等於1小於等於2且不等於

可以寫作if x 1 x 2 x 1.5 一 在c語言中各種比較均有自身的運算子回。答1 大於,運算子為 2 小於,運算子為 3 等於,運算子為 4 大於等於,運算子為 5 小於等於,運算子為 6 不等於,運算子為 於是 1 x大於等於1,寫作x 1 2 x小於等於2,寫作x 2 3 x不等於1.5...

程並行介面8255中C口的按位操作是如何實現的

1 首先用串列埠模組將一個從pc機發來的序列資料轉換成並行資料存放到資料輸出選擇模組的dout口,至於這個八位資料是輸入到控制暫存器還是從pa pb pc口輸出,就由另一個輸入輸出邏輯判斷模組來控制。2 邏輯判斷模組根據a0 a1,wr,rd,還有控制字來判斷三個埠處於什麼工作方式,並將資料傳送 接...

高手進!電腦格式化c盤後,按電源鍵無反應,無法開機。急求

拔出電源,等會再接上 然後開機設定啟動項,你的是優盤嗎 進去pe,從新分割槽格盤 再ghost還原 別這樣裝 你用的應該是ghost的win7吧 你到網咖去下個通用pe工具箱 給你的u盤做成啟動盤 u盤連線電腦 開機從u盤啟動 進去後 一個小系統出現 你可以檢視自己電腦裡面的東西 你找到下的旗艦版的...