【C语言】实现对一个8bit数据的指定位的置0或者置1操作,并保持其他位不变。


给定函数原型:void bit_set(unsigned char *p_data,unsigned char positin,int flag)

参数说明:p_data是指定的源数据;position是指定位(取值范围为1~8);flag表示置0还是置1操作。


#include <stdio.h>
void bit_set(unsigned char *p_data, unsigned char position, int flag)
{
    int a = 1<<(position-1);
    if (flag)
    {
        *p_data |= a;
    }
    else
    {
        *p_data &= ~a;
    }
}
int main()
{
    int a = 127;
    bit_set(&a,8,1);
    printf("%d\n",a);
    return 0;
}


时间: 2024-10-27 04:33:15

【C语言】实现对一个8bit数据的指定位的置0或者置1操作,并保持其他位不变。的相关文章

【C语言】请编写实现以下功能函数:实现对一个8bit数据(unsigned char)的指定位(例如第8位)的置0或置1操作,并保持其他位不变

/*请编写实现以下功能函数:实现对一个8bit数据(unsigned char)的指定位(例如第8位)的置0或置1操作,并保持其他位不变. 函数原型:void bit_set(unsigned char *p_date,unsigned char position,int flag). 函数参数说明:p_date是指定数据源,position是指定位(1~8),flag是置0或置1. */ #include <stdio.h> void bit_set(unsigned char *p_dat

【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_dat

【C语言】编写函数,将一个数的指定位置置0或置1

//编写函数,将一个数的指定位置置0或置1 #include <stdio.h> unsigned int set_bit(unsigned int num, int pos, int flag) { int n = 1; n = n << (pos - 1); //将n的第pos位置1,其它全为0 if (flag == 0) { num = num&(~n); } else if (flag == 1) { num = num | n; } else printf(&q

c语言 对8bit位数据的某位置1或 0

/* 对8bit位数据的某位置1或 0 例:00001010  对第二位制零 00001000 */ #include<stdio.h> #include<stdlib.h> void bit_set_1_0(unsigned char *p_data,unsigned char position,int flag) { if (position > 8||position<1 || p_data == NULL || flag<0 || flag>1) {

转载-从信息论角度论证为什么汉语是世界上最先进的语言--引用多项实验数据

[转载]从信息论角度论证为什么汉语是世界上最先进的语言–引用多项实验数据 作者:汉语计算机应用研究小组(笔名:冷酷的哲学?) 一.语言水平高低的评判准则 口语,实际上是一种通讯协议.就是说,语言实际上是把人的思想通过发音器官变成一串频率不同.波形不同的声波,然后被另一个体的听觉器官和相关的脑部组织重新转变回思想.通讯协议,就是一个规则,一个规定了应该如何把思想/信息转变为易于传输的信号的规则 计算机上,通讯协议有两个基本评判标准:[传输效率]和[抗噪能力] 传输效率:在单位时间里,按照该通讯协议

ddl(数据定义语言) ,dml (数据操控语言),dcl(数据控制语言)

DDL.DML和DCL的理解 1.DDL 1-1.DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这些对象和属性的管理和定义具体表现在Create.Drop和Alter上.特别注意:DDL操作的"对象"的概念,"对象"包括对象及对象的属性,而且对象最小也比记录大个层次.以表举例:Create创建数据表,Alter可以更改该表的字段,Dro

Swift语言中如何使用JSON数据教程

原文:Swift语言中如何使用JSON数据教程 这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift-tutorial JSON(全称:JavaScript Object Notation),是网络服务中传输数据的常用方法,JSON因为容易使用,且可读性强, 所以非常受到欢迎. 下面是个JSON的一个片段: [ {"person": {"name":"Dani

day20 java 语言中的读取写入数据(一)

day20  java 语言中的读取写入数据(一) 一.io概述 io数据流的读写功能,在实际的生活中也很常见,比如文件的上传.下载,日志的自动更新等都与io读写密切相关.io又被分为了读取数据和写入数据两个大的功能.下面就来看看读取数据的几种类. 二.读取数据的几种方式 读取数据被分为了字节流读取数据,和字符流读取数据两种. (一):字符输入流: 1.fileReader类.是字符流读取数据 2.BufferedReader类.带有缓冲流读取数据 (二):字节输入流: 1.FileInputS

智能合约语言 Solidity 教程系列4 - 数据存储位置分析

写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是什么 这部分的内容官方英文文档讲的不是很透,因此我在参考Solidity官方文档(当前最新版本:0.4.20)的同时加入了深入分析部分. 数据位置(Data location) 在系列第一篇,我们提到 Solidity 类型分为两类:值类型(Value Type) 及 引用类型(Reference Types),前面我们已经介绍完了值类型,接下来会介绍引用类型.