社区
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";
}
...全文
661
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;
}
基于springboot+vue+mysql电商平台的设计与实现(源码+论文+开题报告).rar
采用前后端分离架构,包含数据库文件,代码经过完整测试,保证可以运行,内部包含详细的运行说明文档,如遇运行问题可私信博主。 本项目主要面向计算机相关专业中正在筹备大作业、毕业设计的学生,以及渴望通过实战项目提升编码能力的自学者,系统难度设计贴合教学需求,功能模块覆盖全栈开发核心知识点,所有代码与文档均经测试审核,学习者可放心下载参考或直接用于课程实践。
基于JavaEE JSF XML 导航规则配置源码.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、本项目仅用作交流学习参考,请切勿用于商业用途。
实验一图像文件的读取项目文件+报告
实验一图像文件的读取项目文件+报告
Android自定义Button控件实现不同背景图片设置方法
资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 在Android开发中,为了满足特定的设计需求或功能扩展,我们常常
需要
对系统控件进行自定义。本文将介绍如何自定义
一个
Button控件,并为其设置不同的背景图片,涉及自定义控件的基本原理和布局管理。 首先,创建
一个
继承自Button的自定义类MyButton。通过继承,我们可以保留Button原有的功能,并在此基础上添加自定义特性。在MyButton类中,重
写
构造函数以正确处理属性初始化,并添加
成
员变量存储文本、位置信息和背景图片ID。 为了实现背景图片切换,添加onSetText和onSetBmp方法。onSetText用于设置按钮文本及其位置和样式,onSetBmp用于设置按钮按下和松开状态的背景图片ID。 接着,重
写
onDraw方法以显示自定义文本,并重
写
onTouchEvent方法,在用户按下或松开按钮时切换背景图片。
苹果系统启动文件boot.efi解析
资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 原版 macOS 系统文件中的 BOOT.EFI 是用于启动 macOS 的关键文件,它是由苹果公司开发的,用于确保系统能够正确引导和启动。这个文件是 macOS 系统的核心组件之一,它在启动过程中起到至关重要的作用。
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章