社区
C++ 语言
帖子详情
我需要用C++将二进制转换成16进制,然后再把16进制转成2进制,现在不知道如何写这样一个程序。
无聊的职业生涯
2006-02-20 09:48:40
我现在有这样一堆字符串:0001 0100 0001 0100 1001 1000 1111 0110 需要把这些数字转成16进制的,请问如何转,
函数形式如:
char* Bin2Ox(char* psz /* "0001 0100 0001 0100 1001 1000 1111 0110"*/)
{
.........
return "0xAB";
}
...全文
662
8
打赏
收藏
我需要用C++将二进制转换成16进制,然后再把16进制转成2进制,现在不知道如何写这样一个程序。
我现在有这样一堆字符串:0001 0100 0001 0100 1001 1000 1111 0110 需要把这些数字转成16进制的,请问如何转, 函数形式如: char* Bin2Ox(char* psz /* "0001 0100 0001 0100 1001 1000 1111 0110"*/) { ......... return "0xAB"; }
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
redf0x_1
2006-02-20
打赏
举报
回复
16进制到二进制如法炮制
smartcomplier
2006-02-20
打赏
举报
回复
先用itoa(int,char*,16)转成16进制表示的字符串,也可用sprintf()转.
然后再用sprintf()转成二进制.
OK,给分吧!
redf0x_1
2006-02-20
打赏
举报
回复
#include "stdafx.h"
using namespace std;
int onebinary(char binary,int i)
{
if(binary=='1')
{
switch(i)
{
case 0:
return 1;
case 1:
return 2;
case 2:
return 4;
case 3:
return 8;
default:
return -1;
}
}
else
if(binary=='0')
return 0;
else
return -1;
}
char numtoletter(int letternumber)
{
char ch;
assert(letternumber>=0&&letternumber<=15);
if(letternumber>=0&&letternumber<=9)
ch = letternumber+'0';
else
ch = letternumber-10+'A';
return ch;
}
string convert(string input)
{
string output;
char ch;
int size=input.size();
int j=1,letternumber=0;
for(int i=size-1;i>=0;i--,j++)
{
letternumber+=onebinary(input[i],(j-1)%4);
if(j%4==0)
{
ch=numtoletter(letternumber);
output.insert(output.begin(),ch);
if(j%8==0)
output.insert(output.begin(),' ');
letternumber=0;
}
if(i==0&&j%4!=0)
{
ch=numtoletter(letternumber);
output.insert(output.begin(),ch);
}
}
output.insert(output.begin(),'x');
output.insert(output.begin(),'0');
return output;
}
int main()
{
string input,output;
char *p;
cout<<"please input the string to convert:\n";
cin>>input;
output = convert(input);
cout<<output<<endl;
}
learnlife
2006-02-20
打赏
举报
回复
用abcd表示一组
for(;;){
取一段;
(a-48)*8+(b-48)*4+(c-48)*2+(d-48)*1得到这个数;
转为16进制存储其对应字符就可以了;
}
无聊的职业生涯
2006-02-20
打赏
举报
回复
哈哈,我知道是4个4个一组,可是怎么转换成16进制呢,我没有做过样的算法啊,
OpenHero
2006-02-20
打赏
举报
回复
4个4个一组
weis_mai
2006-02-20
打赏
举报
回复
如果不考虑机器字的长度,完全同意du51的解,但是考虑机器字的话,从后往前,以机器字长分组,每组调用du51的change函数。如32位机器上
#define MACHINE_WORD 32
len=strlen(src);
while (len) {
len-=MACHINE_WORD;
len=(len<0)?0:len;
change(des, src+len);
src[len]=0;
// To Use des
}
du51
2006-02-20
打赏
举报
回复
#include<iostream>
#include<cstring>
using namespace std;
void change(char *des,char *src)
{
if(!*src)return;
int temp=0;
while(*src)temp=temp*2+(*src++-48);
sprintf(des,"%s","0x");
sprintf(des+strlen(des),"%08x",temp);
}
int main()
{
char src[33]={0},des[11]={0};
cout<<"请输入你的数(B)"<<endl;
cin>>src;
change(des,src);
cout<<"十六进制是:"<<des<<endl;
system("PAUSE");
return 0;
}
C++
十六进制转二进制
这里我们
需要
先将十六进制字符串转换为十进制,然后将十进制转换为二进制。可以使用`std::stoul`函数将十六进制字符串转换为无符号长整型,然后通过位运算或循环遍历来生
成
二进制字符串。下面是
一个
实现的例子: ``...
将二进制文件转换为
16进制
在描述中提到的"ReadBinaryFile"可能是
一个
实现这个功能的
程序
,它读取二进制文件,将其中的数据转换
成
十六进制格式,并可能提供将这些数据保存为文本文件的选项。这个
程序
可能包含了如上所述的
C++
代码逻辑,通过...
c++
2.8.10进制转换
`bitset<位数>`用于创建
一个
固定大小的二进制数,然后通过`to_ulong()`方法将其转换为十进制整数。 2. **八进制到十进制**:
C++
中,`std::oct`操纵符用于设置输出流的基数为8,然后可以使用`std::cout`打印出八进制...
16进制
与10进制相互转换
c++
代码
例如,开发者可能
需要
将内存中的字节序列转换
成
可读的
16进制
字符串进行调试,或者在网络传输中,将
16进制
编码的数据解码
成
原始值。 提供的压缩包文件“16-10进制转换”可能包含了一些示例代码,这些代码可能直接...
C++
实现各进制间转换
本文将深入探讨如何使用
C++
来实现二进制、八进制和十进制以及十六进制之间的转换。 一、基础知识 1. 进制系统:计算机主要使用二进制(Base-2)、八进制(Base-8)、十进制(Base-10)和十六进制(Base-16)这四种...
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章