C++实现string输出char的二进制 && string按二进制位转char类型

Posted 狱典司

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++实现string输出char的二进制 && string按二进制位转char类型相关的知识,希望对你有一定的参考价值。

C++实现string输出char的二进制 && 二进制string按位转char类型

string按二进制位转char类型

示例代码:

#include <string>
#include <iostream>

using namespace std;
 
/* 8 Bytes 以0/1为内容的字符串按二进制转化成 1 Byte 的 char */
int bin_to_dec_once(string bin_str) 
    int ch = 0;
    if (bin_str.length() != 8) 
        cout << bin_str << " 不满足8bits!不可编码!" << endl;
        exit(-1);
    

    for (int i = 0; i < 8; i++) 
        ch += (bin_str[i] - '0') << (7 - i);
    

    return ch;


int main()
	string bin1 = "11111111";
	string bin2 = "00000110";
	
	char c1 = bin_to_dec_once(bin1);
	char c2 = bin_to_dec_once(bin2);
	
	cout << (int)c1 <<endl;						/* 输出 -1 */ 
	cout << (int)((unsigned char)c1 )<<endl; 	/* 输出 255 */ 
	cout << (int)c2 <<endl;						/* 输出 6*/ 
 

string输出char的二进制

示例代码:

#include <string>
#include <iostream>
#include <string.h>

using namespace std;

/* 十进制转二进制 */ 
string dec_to_bin(int c)
	if(c < 2)	return string(1,c + '0');			/* 出口 */ 
	return  dec_to_bin(c/2) + string(1, c%2 + '0');	/* 递归,短除法思路 */


/* 按char的8bits补齐前缀0 */
string bin_complete(string bin_code)
	return string(8 - bin_code.length() , '0') + bin_code;


/* 将一个char转化为二进制的string */ 
string char_to_bin(char c)
	unsigned char u_c = c;
	return bin_complete(dec_to_bin(u_c));


int main()
	cout << char_to_bin('x') <<endl;	/* 输出为: 01111000 */ 
	cout << char_to_bin(255) <<endl;	/* 输出为: 11111111 */ 
 	return 0;


以上是关于C++实现string输出char的二进制 && string按二进制位转char类型的主要内容,如果未能解决你的问题,请参考以下文章

[ C++ ] string类常见接口及其模拟实现

C++ char 转 string

C++ 将 int 和 string 转换为 char*

C++中进制转换

C++ string2进制转16进制要怎么做

C++ 将 std::string 复制到没有空终止的 char 数组