封装函数,对一个数据类型的每一个字节进行操作!
一个字节8位,比如 int 类型,占用4个字节
现在需要对int 的第一个字节也就是低八位进行写一段数据,或者数字,然后依次写 第二个字节,第三个字节,
比如函数 void writebit(void *Buffer,int nLen,int nPos,char cWriteData)
第一个参数表示要写的缓冲区 第二个参数缓冲区大小,多少个字节,第三个参数表示在哪个字节写,第四个参数表示要写个什么东西
然后读 void readbit(void *buffer,int nLen,int nPos,char *cwiredata); 参数的意思一:要读取的缓冲区,二:缓冲区的大小,字节,三,要读的字节, 四 读取到的数据
int n = 0;
比如 writebit(&n,4,1,123);
char c;
readbit(&n,4,1,c);
c输出的就是123
这两个函数如何实现
[解决办法]
用bitset类就可以很好实现了
[解决办法]
可以使用这样的方法
int a=123;
unsigned char* p=(unsigned char*)&a;
p[0]=1;
p[1]=2;
p[3]=3;
p[4]=4;
[解决办法]
#include <stdio.h>
void readbit(void *Buffer,int nLen,int nPos,char *cWiriteData)
{
char* p = (char*)Buffer;
*cWiriteData = p[nPos - 1];
}
void writebit(void *Buffer,int nLen,int nPos,char cWriteData)
{
char* p = (char*)Buffer;
p[nPos - 1] = cWriteData;
}
int main(int argc, char const *argv[])
{
int n = 0;
writebit(&n,4,1,123);
char c;
readbit(&n,4,1,&c);
printf("%d\n", c);
return 0;
}