首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

谋求进制转换的方法

2013-04-21 
寻求进制转换的方法大家好现在刚工作,对一些开发的方法很不熟悉,比如说 内存中 12 AB 3D 4E 这四个字节的

寻求进制转换的方法
大家好
   现在刚工作,对一些开发的方法很不熟悉,比如说 内存中 12 AB 3D 4E 这四个字节的内容,想要转换成 "12AB3D4E"这样的串,想知道有什么样的好的方法,MFC 还是C++标准库中有这样的方法么?大概意思就是一个BYTE流,转换成字符串,还有字符串转化成BYTE流。大家有什么样好的方法?因为对方发来的应该是C#中的BYTE流。。

还有比如这些需求
十进制整数转二进制串;
十进制整数转十六进制串;
十六进制字符串转成十进制数
二进制字符串转化为十六进制字符串;
二进制字符串转化为十进制数;
十六进制字符串转成二进制串
ASC\GBK字符串转十六进制串
十六进制字符串转成汉字(GBK)及字符(ASC)

是不是有现成的类可以调用转换?
先谢谢大家了谋求进制转换的方法
C++ 转换
[解决办法]

引用:
引用:
BYTE->字符串
C/C++ code?12345678    BYTE b[4];    b[0] = 0X12;    b[1] = 0XAB;    b[2] = 0X3D;    b[3] = 0X4E;    char str[9] = {0};    sprintf(str ,"%X%X%X%X" ,b[0],b[1],b[2],b[3])……
改成循环不就完了,sprintf那一行改成下边这样,注意那个字符数组str的长度要足够容纳要转换的BYTE,一般至少得是BYTE数组的2倍+1长(+1是为了预留结束符'\0')
    for (int i = 0; i != sizeof(b); i++)
    {
        sprintf(p ,"%X" ,b[i]);
        p += 2;  // 因为转化后每个BYTE位占两个字符,所以p向后跳两个位置
    }

[解决办法]
电脑内存只是一个一维二进制字节数组及其对应的二进制地址;
人脑才将电脑内存中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息……

进制转换会用
strtol
ltoa
这两个函数就够了。

热点排行