App 2.0开发模式的行业看法
1286
2022-10-18
c++ c语言 bit位操作,char转bit,bit转char
直接上代码
//16位 0101重组成longfloat cqlCharBytePrintf(char byData1,char byData2){ int n0, n1, n2, n3, n4, n5, n6, n7; n0 = (byData1 & 0x01) == 0x01 ? 1 : 0;//底位 n1 = (byData1 & 0x02) == 0x02 ? 1 : 0; n2 = (byData1 & 0x04) == 0x04 ? 1 : 0; n3 = (byData1 & 0x08) == 0x08 ? 1 : 0; n4 = (byData1 & 0x10) == 0x10 ? 1 : 0; n5 = (byData1 & 0x20) == 0x20 ? 1 : 0; n6 = (byData1 & 0x40) == 0x40 ? 1 : 0; n7 = (byData1 & 0x80) == 0x80 ? 1 : 0;//高位 int m0, m1, m2, m3, m4, m5, m6, m7; m0 = (byData2 & 0x01) == 0x01 ? 1 : 0;//底位 m1 = (byData2 & 0x02) == 0x02 ? 1 : 0; m2 = (byData2 & 0x04) == 0x04 ? 1 : 0; m3 = (byData2 & 0x08) == 0x08 ? 1 : 0; m4 = (byData2 & 0x10) == 0x10 ? 1 : 0; m5 = (byData2 & 0x20) == 0x20 ? 1 : 0; m6 = (byData2 & 0x40) == 0x40 ? 1 : 0; m7 = (byData2 & 0x80) == 0x80 ? 1 : 0;//高位 //重组 bitset <16> bitas; bitas.set(0,n0);//这是低位 bitas.set(1,n1); bitas.set(2,n2); bitas.set(3,n3); bitas.set(4,n4); bitas.set(5,n5); bitas.set(6,n6); bitas.set(7,m0); bitas.set(8,m1); bitas.set(9,m2); bitas.set(10,m3); bitas.set(11,m4); bitas.set(12,0); bitas.set(13,0); bitas.set(14,0); bitas.set(15,0);//这是高位 //转电压 float tmvnum = (float)bitas.to_ulong()*((float)3300/(float)4095); float tvnum = tmvnum/1000; return tvnum;}
#include
//char转字节打印
void charBytePrintf(char byData){ printf("byte\n"); int n0, n1, n2, n3, n4, n5, n6, n7; n0 = (byData & 0x01) == 0x01 ? 1 : 0; n1 = (byData & 0x02) == 0x02 ? 1 : 0; n2 = (byData & 0x04) == 0x04 ? 1 : 0; n3 = (byData & 0x08) == 0x08 ? 1 : 0; n4 = (byData & 0x10) == 0x10 ? 1 : 0; n5 = (byData & 0x20) == 0x20 ? 1 : 0; n6 = (byData & 0x40) == 0x40 ? 1 : 0; n7 = (byData & 0x80) == 0x80 ? 1 : 0; printf("%d",n0); printf("%d",n1); printf("%d",n2); printf("%d",n3); printf("%d",n4); printf("%d",n5); printf("%d",n6); printf("%d",n7); printf("\n%#x",byData);}
char转8个字节
//转8bitvoid convert(char c){ char result[8]={0}; for(int i=0;i<8;i++) result[i]=c&(0x01<
//8个1的bit转char
bitset <8> bitas; bitas.set(0,1); bitas.set(1,1); bitas.set(2,1); bitas.set(3,1); bitas.set(4,1); bitas.set(5,1); bitas.set(6,1); bitas.set(7,0); printf("%#X,",bitas.to_ulong()); fprintf(fp,"%#X,",bitas.to_ulong());//这里可以写入文本
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。