使用C++语法将字符串类型转换成二进制类型,具体算法。

如题所述

#include <string>
#include <vector>
#include "iostream"
using namespace std;

int main(){
string str="101011";//为了简单此处取了个常量,当然可以用cin输入
const char *str1=str.c_str();//返回c风格字符串
vector<int> bytes;//顺序容器,如果此处不用的话 你可以定义一个大的空间存储,也可以用动态分配空间
int i=0;
while(*(str1+i)!=0)
{
int j=*(str1+i)-48;//char数字转换成int型
bytes.push_back(j);//加入容器中
++i;
}
//输出到屏幕
vector<int>::iterator iter;
for (iter=bytes.begin();iter!=bytes.end();++iter)
cout<<*iter;
cout<<endl;
return 0;
}
已经调试通过,不知道是不是你想要的
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-21
标准库的string有个c_str函数,就能得到字符串的char数组表示

使用C++语法将字符串类型转换成二进制类型,具体算法。
include <string> include <vector> include "iostream"using namespace std;int main(){ string str="101011";\/\/为了简单此处取了个常量,当然可以用cin输入 const char *str1=str.c_str();\/\/返回c风格字符串 vector<int> bytes;\/\/顺序容器,如果此处不用的话 你可以定义一个大的空间存储,...

用C++如何把一个字符串转化为二进制数
字符串DATA到int很简单,就一句话。int到二进制数,就要算了。代码十几二十句吧 字符串到整型 include <stdlib.h> include <stdio.h> int main(){ char a[] = "-100" ;int c ;c = atoi( a ) ; \/\/这句就是转化了 printf("c = %d\\n", c) ;return 0;} ...

C++编程 将字符串转换为二进制码输出
可以定义一个函数,实现把一个字符转换为二进制码输出。在函数中,先将1左移7位,就可以得到二进制值10000000,再将此值与一个字符“按位与”,然后判断其值是否为0。不为0就输出1,否则就输出0。类似的操作做8次,就可以输出一个字节的8位二进制码了。include<stdio.h> void prt(char c){int...

C++怎么吧十六进制字符串转为相应的二进制字符串,比如“FF”转为对 ...
int x,n,ss[256];char s[256];n=0; x=0x0af;while ( x ) { ss[n]=x%2; x\/=2; n++; } for ( i=0;i<n;i++ ) s[n-i-1]=ss[i]+'0';s[n]=0;至此,字符串s中存储了x的二进制表示字符串。

c++ char型转换成二进制数的程序
有没有必要这样写暂不说,学手时怎么写都可以,只要正确。你这里有个隐形错误:C++中cin >>是自动判断变量类型的,a声明的是char型,那么cin >> a;中a接收的是”字符“而不是“数”,即当你输入1时,a=0x31而并不是a=1,所以后面算法就都错误了。

怎么用C++将字符串(很长)转换为二进制 如‘A’(ASC码为65) 转换为: 0...
void itoa_8bit_bin(char* str, char i){ unsigned int mask = 0x80;while ( (i & mask) == 0 ){ (str++) = '0';mask >>= 1;} itoa(0xff & i, str, 2);}

求C++高手将字母串转化为2进制比特流
include <iomanip> include <string> include <iterator> include <sstream> using namespace std;int main(){ stringstream s;s << ios::binary << "101010";char a;s >> a;cout << a;system("pause");} C++没有二进制流这种数据类型,所以我把读取的二进制内容保存到char里了,可以进行...

c++ char型转换成二进制数的程序
有没有必要这样写暂不说,学手时怎么写都可以,只要正确。你这里有个隐形错误:C++中cin >>是自动判断变量类型的,a声明的是char型,那么cin >> a;中a接收的是”字符“而不是“数”,即当你输入1时,a=0x31而并不是a=1,所以后面算法就都错误了。

C++实现十六进制的char型数组转换成二进制
\/\/ toBin, 化16-进制数字 szh为2-进制数字 szb. 仅转化 Hex, Oct. 0xca 等等必须写作 0xCA.TCHAR* toBin(const TCHAR*szh, TCHAR*szb, int B=4){ if(!szh) return 0L;if( !(B==4|| B== 3) ){ MessageBox(0,"仅转化Hex,Oct!","toBin",0); return szb; } const TCHAR*p=...

谁能编一个把PCM(自然码)转成为二进制的C++程序
int main(){ \/\/接收输入的4位自然码字符串 转化为整形 \/\/temp为每位的权值8 4 2 1 \/\/result[]为要输出的二进制结果的数组 int c[4]={0},SUM=0,temp[4]={8,4,2,1},result[100];for(int i=0;i<4;++i){ c[i]=(int)getchar()-48;SUM+=c[i]*temp[i]; \/\/利用权值...

相似回答
大家正在搜