hur.cn - 华软网

 热门搜索

字符串类型转换为二进制

  作者:未知    来源:网络    更新时间:2011/4/17
rt
---华软 网友回答---
字符串可能有汉字 字符 和数字 等等
---华软网友回复---
没明白什么意思 
---华软网友回复---
不明白,求解释
---华软网友回复---
楼主说的字符串是 数值字符串吧,直接用atoi atol 这类转换函数不就好了么!
---华软网友回复---
提供个思绪,对于单个字符,输出其ASCII 码:

char ch='4';
printf("%c  的ASCII 码为   %d \n",ch,ch);
---华软网友回复---
unicode的话
把字串拷贝到一个bufeer里
再 %X形式输出。
---华软网友回复---
楼主记得给分哦
C++">
#include "stdafx.h"
//如果不是VC 6.0  就是 #include "stdafx.h" 改成 #include <stdio.h>
//然后再加一句 #include <string.h> 就能编译了.

int main(int argc, char* argv[])
{

char szString[]="AAAAAAAAAAAA";

int len = strlen(szString); //获得字符串的长度

unsigned char  n = 0;

char szbuffer[10]={0}; //这是数组 运用来贮存二进制的.

for (int i=0;i<len;i++)
{
n = szString[i];

int t=0;

do 
{
if(n%2==1)
szbuffer[t]='1';
else
szbuffer[t]='0';

n=n/2;

t++;
} while (n > 0);

szbuffer[t+1]='\0';

//把字符串反转过来 比如 ABC  反过来就是 CBA 
strrev(szbuffer);

printf("%s\t",szbuffer);
}
printf("\n");

return 0;
}


输出结果
1000001 1000001 1000001 1000001 1000001 1000001 1000001 1000001 1000001 1000001
1000001 1000001
Press any key to continue

A 对应的 十进制是 65  65 对应的二进制 1000001 结果无所有过失..

小提醒 记得结贴.


---华软网友回复---
7楼的代码我怎么就没看懂捏?
---华软网友回复---
C++">CString Conversion(int num)
{
const int LEN = 8 * sizeof(int);

char buf[LEN + 1] = {0};

for(int i=LEN-1; i>=0; i--, num >>= 1)
{
buf[i]=(1 & num) + '0';
}

return CString(buf);

}

void CXXXXDlg::OnOK() 
{
// TODO: Add extra validation here

char buf[] = "Hello, World!ÄãºÃ£¬ÊÀ½ç£¡123";
int len = strlen(buf);
CString strText;

for(int i=0; i<len; i++)
{
BYTE ch = buf[i];
strText += Conversion(ch);
strText += _T(" ");
}
AfxMessageBox(strText);
}

---华软网友回复---
引用 9 楼 visualeleven 的回复:
C/C++ code
CString Conversion(int num)
{
    const int LEN = 8 * sizeof(int);

    char buf[LEN + 1] = {0};

    for(int i=LEN-1; i>=0; i--, num >>= 1)
    {
        buf[i]=(1 &amp; num) + '0……


呵呵,部长的代码简洁明了,赞一个      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。