Ascll字符串转换到二进制字符串
2017-03-27 23:40
190 查看
上一章说到二进制字符串转换到Ascll字符串的方法,本章按照同样的原理来说下Ascll字符串转换到二进制字符串的方法。
函数定义如下:
代码实现如下:
函数定义如下:
int AscllToBinary(char* dst,const void* src,int low,int len);
代码实现如下:
//第一个参数表示输出转换二进制字符串 空间大小为len长度的8倍 //第二个参数表示输入字符串(Ascll) //第三个参数表示是否采用地位在前高位在后 :0表示高位在前(高位第一位是128) , 1表示低位在前(地位第一位1) (二进制以11111111 的形式 左高右低计算) //第四个参数表示需要转换的Ascll字符串的长度 int AscllToBinary(char* dst,const void* src,int low,int len) { if (0 == src || 0 >= len) { return -1; } const unsigned char* psrc = (const unsigned char*)src; char* pdst = dst;//如果采用地位在前保存,负责转换位置 char valstr[8] = {0}; int nNum = 0; for (int i = 0; i < len;i++) { int nval = *(psrc + i); for (int it = 1;it < 9;it++) { //由于用到了计算次方的函数pow 所以要加上#include<math.h>头定义 if (nval >= 256 / pow((double)2,it)) { valstr[it - 1] = '1'; nval -= 256 / pow((double)2,it); } else { valstr[it - 1] = '0'; } } if (!low)//从高位向地位 { for (int ival = 0;ival < 8;ival++) { pdst[nNum++] = valstr[ival]; } } else//从低位到高位 { for (int ival = 7;ival >= 0;ival--) { pdst[nNum++] = valstr[ival]; } } } return nNum; }
实现原理: 1.由于一个Ascll unsignal char字符表示0-255数字,那么由一个Ascll字符转换为8个二进制字符。 2.增加了二进制字符的转换保存方向,low值用来决定方向。
相关文章推荐
- 二进制字符串转换到Ascll字符串
- asp实现二进制字符串转换为Unicode字符串
- 字符串和二进制数组转换、将HTML文件显示为页面的一部分、UTF8和GB2312之间的转换
- asp 二进制字符串转换为普通字符串
- 二进制(字符串)转换成十进制
- 八进制和十六进制与二进制的转换及对应字符串
- 二进制字符串转换成中文字符串
- 字符串和二进制数组转换、将HTML文件显示为页面的一部分、UTF8和GB2312之间的转换
- 文件流(二进制数据)转换成字符串
- Java中二进制和字符串之间的相互转换
- 二进制字符串数据转换为16进制数据
- vc BYTE变量转换为二进制字符串
- vbs 二进制数据流转换字符串的方法
- 二进制字符串与十进制的转换
- ASCII字符转换成二进制形式的字符串
- 将(二进制)byte[]型转换成字符串
- 介绍一种将ASCII码字符串转换为二进制字节数据的方法
- 在C#中将二进制数据转换成BASE64字符串的方法
- 字符串转换成二进制,存入mysql
- 把字符串转换为二进制再输出的算法