void SecToStr(const std::string strSrc, std::string& strDst)
for (size_t j = 0; j < strSrc.size(); j = j+8)
std::string strTmp = strSrc.substr(j, 8);
unsigned int i = 0;
const char* pch = strTmp.c_str();
while (*pch == '0' || *pch == '1') {
i <<= 1;
i |= *pch++ - '0';
char a[2] = {0, 0};
a[0] = i;
a[1] = '\0';
std::string strTmp2 = a;
strDst.append(strTmp2);
void StrToSec(const std::string& strSrc, std::string& strDst)
std::string str = strSrc;
for (int i = 0;i < strSrc.size();++i) {
for (int j = 7;j >= 0;--j) {
if (str[i] >> j & 0x1) {
strDst.append("1");
else {
strDst.append("0");
int main()
std::string str = "万剑归总,hello, world!";
std::cout << str << "\n";
std::string strDst = "";
StrToSec(str, strDst);
std::cout << strDst << "\n";
std::string dst1 = "";
SecToStr(strDst, dst1);
std::cout << dst1 << "\n";
废话不多说上代码#include <iostream>#include <vector>#include <string>void SecToStr(const std::string strSrc, std::string& strDst){ for (size_t j = 0; j < strSrc.size(); j = j+8) { std::string strTmp = strSrc.substr(
代码如下: 代码如下:<SPAN xss=removed> char* p = “1010110001100”; int n = 0; for(int i=0;i<strlen xss=removed>
您可能感兴趣的文章:
C++
十进制转换为二进制的实例代码
C++
实现
string存取二进制数据的方法
C++
实现
读入二进制数并转换为十进制输出详解
C++
编程中对二进制文件的读写操作
C++
二进制翻转实例分析
C++
中几种将整数
流
转化为
字符串
的2种方法比较
流
转化为
字符串
,一种是使用BinToHex(),将2进制字节转换为16进制
字符串
,经过这样转换后的
字符串
的长度刚好是
流
.size的2倍。
一种是使用base64编码,将2进制字节转换为BASE64编码后的
字符串
,经过这样转换后的
字符串
的长度比
流
.size稍微大一些。
笔者为此专门作了测试:
通过2种方式分别查询同样数据集的数据
流
.size:421字节
_In_ DWORD dwFlags,
_In_NLS_string_(cbMultiByte) LPCCH lpMultiByteStr,
_In_ int cbMultiByte,
_Out_writes_to_opt_(cchWideChar,return)...
很多时候在
C++
里面,读取文件的方式很多,加上操作
字符串
是比较方便的一种形式,因为string类里面提供的方法还是比较充足的,下面记录一种将文件读取成
字符串
的方法:
需要的基础类型:
string:
字符串
类型
ifstream:输入
流
读取的一个过程:
//首先定义一下我们需要用到的变量
std::string CodeFilestr; // 假设我们现在要读取的是一个.cpp的代码文...
std::string ANSItoUTF8(const char * ansi)
int len = MultiByteToWideChar(CP_ACP, 0, ansi, -1, NULL, 0);
wchar_t* wstr = new wchar_t[len+1];
memset(wstr, 0, len+1);
MultiByteToWideChar(CP_ACP, 0, ...
if (hexVal[i]>='0' && hexVal[i]<='9')
deciVal += (hexVal[i] - 48)*pow(32, strlen(hexVal)-1-i);
else if (hexVal[i]>='A' && hexVal[i]<='Z')
deciVal += (hexVal[i] - 55)*pow(32, strlen(hexVal)-1-i);
return deciVal;
使用这些函数时,你可以这样调用:
long long n;
char hexaDeciNum[100];
// 输入十进制数
printf("Enter a decimal number: ");
scanf("%lld", &n);
// 转换为三十二进制数
decToHex(n);