进制转换--二进制、八进制、十六进制

本文介绍了一种使用C++实现将十进制数转换为十六进制数的方法。通过两个函数实现这一转换过程:一个通用进制转换函数HexadecimalConversion和一个专门针对十六进制转换的函数ToHex。文章提供了完整的源代码,演示了如何通过位运算进行高效转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// ToHex.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
void HexadecimalConversion(int num,int desHex,int offset)
{
/*
int num 十进制数据
int desHex 目的进制: 1 代表二进制 7 代表八进制 15 代表十六进制
int offset 字符位移量: 二进制 offset=1 八进制 offset=3 十六进制 offset=4
*/
char chs[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char tmp[64];
int pos = sizeof(tmp);
while (num)
{
int temp = num& desHex;
tmp[--pos]=chs[temp];
num = num >> offset;
}
for (int i=pos;i<sizeof(tmp);i++)
{
printf("%c",tmp[i]);
}
}
void ToHex(int num)
{
char chs[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

char tmp[8];
int pos = sizeof(tmp);
while (num)
{
int temp = num&15;
tmp[--pos]=chs[temp];
num = num >> 4;
}
for (int i=pos;i<sizeof(tmp);i++)
{
printf("%c",tmp[i]);
}
}


int _tmain(int argc, _TCHAR* argv[])
{
ToHex(1000);
HexadecimalConversion(100,15,4);
getchar();
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值