亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問我該怎樣用fwrite 函數寫1個bit的0或1?

請問我該怎樣用fwrite 函數寫1個bit的0或1?

C PHP
梵蒂岡之花 2021-10-21 15:15:53
c語言,怎樣用fwrite 函數寫1個bit的0或1
查看完整描述

2 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

fwrite 寫出的數據量 是以字節為單位的,所以不能只輸出 1個字元。

你可以把每8個 字元 湊成一個字節 輸出,最后一次輸出 也許不得不 浪費 若干字元。

你可以用 位運算 湊字節。 也可以 用 結構體 位域 定義方法 作 bit 分配。
================
用 結構體 位域 定義方法 作 bit 分配的例子:
聯合體用來方便地用16進制屏幕輸出1字節。
fwrite() 輸出可以直接用結構,不需要聯合體那部分程序。

#include <stdio.h>
typedef struct bs
{
unsigned a1:1; unsigned a2:1;
unsigned a3:1; unsigned a4:1;
unsigned a5:1; unsigned a6:1;
unsigned a7:1; unsigned a8:1;
}BS;

union U{ BS b; unsigned char c; }

main(){
BS b={0};
union U uu;
b.a1=1;b.a2=1;b.a3=1; // 字元賦值
uu.b=b;
printf("0x%02x",uu.c); // 打印這一字節。
return 0;
}



查看完整回答
反對 回復 2021-10-24
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

計算機存儲最小單位是8位,親,沒有辦法以一個bit為單位存儲的

查看完整回答
反對 回復 2021-10-24
  • 2 回答
  • 0 關注
  • 487 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號