【c語言】實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)置0或者置1操作,並保持其他位不變
// 實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)置0或者置1操作,並保持其他位不變
#include <stdio.h>
void bit_set(unsigned char *p_data, unsigned char position, int flag)
{
unsigned c;
unsigned char a = 1;
a = a << (position - 1);
if (flag == 1)
{
*p_data = *p_data | a;
}
else
{
c = ~a;
*p_data = *p_data & c;
}
}
int main()
{
int pos;
int flag;
unsigned char P_data;
printf("please enter the number:");
scanf("%d", &P_data);
printf("please enter the position:");
scanf("%d", &pos);
printf("please enter the flag(0 or 1):");
scanf("%d", &flag);
bit_set(&P_data, pos, flag);
printf("the number is %d\n", P_data);
return 0;
}
<img src="https://img-blog.csdn.net/20150519232954164?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb3lhcWlhbjU1Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
相關文章
- C語言中的置0和置1操作C語言
- C語言位操作C語言
- C語言 資料的位級表示及操作C語言
- std::cout 輸出 unsigned char型別資料型別
- C語言02-常量、二進位制、資料型別C語言資料型別
- C語言-變數常量資料型別C語言變數資料型別
- “這個裝置憑藉人臉識別或者語音播報,實現無人操作。
- C語言資料型別C語言資料型別
- c語言的基本資料型別C語言資料型別
- PHP 操作 mysql blob 資料型別的欄位PHPMySql資料型別
- MySQL中資料型別(char(n)、varchar(n)、nchar(n)、nvarchar(n)的區別)MySql資料型別
- 【c語言】寫一個巨集定義,實現的功能是將一個int型的數的奇偶位互換C語言
- C語言(基本資料型別)C語言資料型別
- C語言-對一個結構體中的欄位進行排序C語言結構體排序
- 【c語言】統計一個數二進位制中的1的個數C語言
- MySQL資料型別操作(char與varchar)MySql資料型別
- SQL 語句調優_SQL傳遞引數的資料型別與表索引欄位型別保持一致SQL資料型別索引
- 強型別語言變數和資料型別的理解變數資料型別
- 劍指 Offer 列印從1到最大n位數c++C++
- JavaScript保留兩位或者其他位數小數JavaScript
- C語言訪問資料物件在記憶體中真實位模式的一個方法C語言物件記憶體模式
- C語言 列舉資料型別C語言資料型別
- 二進位制安全_C語言中資料型別C語言資料型別
- 實現整數二進位制指定位置為0或1
- 逍遙自在學C語言 | 變數、常量與資料型別C語言變數資料型別
- 《C語言開發從入門到精通》一第1章C語言之定位1.1 C語言的誕生C語言
- 位反轉的最佳演算法(C語言實現)演算法C語言
- andFilterWhere()函式找不出某個int型別欄位為0的資料Filter函式型別
- 保留兩位小數:資料庫欄位型別NUMBER,Java欄位型別Double型別資料庫型別Java
- Java資料型別與資料庫欄位型別對應關係Java資料型別資料庫
- C語言-指標操作C語言指標
- Oracle-不刪表資料,修改欄位型別Oracle型別
- 資料欄位型別匹配型別
- C語言位運算C語言
- 用c語言實現輸入一個十進位制數,計算其轉換為二進位制數後其中包含1的個數C語言
- 換個角度帶你學C語言的基本資料型別C語言資料型別
- c語言實現this指標效果C語言指標
- go 語言位操作庫 bitsetGo