C/C++常用进制转换
MFC进制转换.h
#pragma once
/*进制十六到十*/
QWORD Hex_Conversion_Dec(CString aHex);
/*
功能:十进制到十六进制字符串
参数:十进制整数
返回:十六进制字符串
*/
CString IntToHex(UINT64 aint);
/*
功能:二进制到十六进制
参数:二进制文本
返回: 十六进制字符串
*/
CString BinToHex(CString straa);
/*
功能:十六进制到二进制
参数:十六进制文本
返回: 二进制字符串
*/
CString HexToBin(CString straa);
/*判断是否为中文*/
bool IsChinese(char* Cstr);//判断字符串中是否存在中文
MFC进制转换.cpp
#include "MFC进制转换.h"
//#include "atlstr.h"
#include "pch.h"
#include "WinDNS.h"
#include "afxstr.h"
/*功能:十六进制到二进制过程函数*/
CString HexToBin2(int ae)
{
CString str;
switch (ae)
{
case 0:
{
str = "0000";
break;
}
case 1:
{
str = "0001";
break;
}
case 2:
{
str = "0010";
break;
}
case 3:
{
str = "0011";
break;
}
case 4:
{
str = "0100";
break;
}
case 5:
{
str = "0101";
break;
}
case 6:
{
str = "0110";
break;
}
case 7:
{
str = "0111";
break;
}
case 8:
{
str = "1000";
break;
}
case 9:
{
str = "1001";
break;
}
case 0xA:
{
str = "1010";
break;
}
case 0xB:
{
str = "1011";
break;
}
case 0xC:
{
str = "1100";
break;
}
case 0xD:
{
str = "1101";
break;
}
case 0xE:
{
str = "1110";
break;
}
case 0xF:
{
str = "1111";
break;
}
default:
break;
}
return str;
}
/*
功能:十六进制到二进制
参数:十六进制文本
返回: 二进制字符串
*/
CString HexToBin(CString straa)
{
//C0180300600
//11000000000110000000001100000000011000000000
CString str, ret;
int strl = straa.GetLength();
for (QWORD i = 0; i < strl; i++)
{
str = straa.Mid(i, 1);
if ((str[0] >= '0' && str[0] <= '9') || (str[0] >= 'a' && str[0] <= 'f') || (