// Copyright (c) 2020 Lv Decai, Shenzhen, China.// Filename: ConvertUtility.cpp// Version: 1.0// Release date: 2020年10月11日// License: MIT (http://opensource.org/licenses/MIT)#include "StdAfx.h"#include "ConvertUtility.h"NAMESPACE_BEGIN;// 把二进制字符串解析为数据string ConvertUtility::ParseBinaryString(CString sBinaryString){int iLength = sBinaryString.GetLength();iLength -= iLength % 8;string sData;sData.resize(iLength / 8);char* pData = (char*) sData.data();for (int i = 0; i < iLength / 8; i++){pData[i] = 0;for (int j = 0; j < 8; j++){TCHAR c = sBinaryString.GetAt(i * 8 + j);if (c == _T('0')){}else if (c == _T('1')){pData[i] += 1;}else{break;}if (j < 7){pData[i] <<= 1;}}}return sData;}// 把数据转换为二进制字符串CString ConvertUtility::ToBinaryString(const UCHAR* pData, UINT iLength){TCHAR Binary[][5] ={_T("0000"), _T("0001"), _T("0010"), _T("0011"), _T("0100"), _T("0101"), _T("0110"), _T("0111"),_T("1000"), _T("1001"), _T("1010"), _T("1011"), _T("1100"), _T("1101"), _T("1110"), _T("1111")};CString sResult;sResult.Preallocate(iLength * 8);for (UINT i = 0; i < iLength; i++){sResult += Binary[pData[i] >> 4];sResult += Binary[pData[i] & 0x0f];}return sResult;}// 把数据转换为十六进制字符串CString ConvertUtility::ToHexString(const UCHAR* pData, UINT iLength, BOOL bUpper){CString sResult;if (pData == NULL|| iLength == 0){return sResult;}sResult.Preallocate(4 * iLength);for (UINT i = 0; i < iLength; i++){sResult.AppendFormat(bUpper ? _T("%02X ") : _T("%02x "), pData[i]);}return sResult;}// 将整数转换成字符串CString ConvertUtility::ToString(int iNumber, BOOL bSigned){CString sResult;if (bSigned){sResult.Format(_T("%d"), iNumber);}else{sResult.Format(_T("%u"), (UINT) iNumber);}return sResult;}// 将整数转换成字符串CString ConvertUtility::ToString(UINT iNumber){CString sResult;sResult.Format(_T("%u"), iNumber);return sResult;}// 将长整数转换成字符串CString ConvertUtility::ToString(__int64 iNumber, BOOL bSigned){CString sResult;if (bSigned){sResult.Format(_T("%I64d"), iNumber);}else{sResult.Format(_T("%I64u"), (UINT64) iNumber);}return sResult;}// 将长整数转换成字符串CString ConvertUtility::ToString(UINT64 iNumber){CString sResult;sResult.Format(_T("%I64u"), iNumber);return sResult;}// 将浮点数转换成字符串CString ConvertUtility::ToString(double fNumber, PCTSTR sFormat){CString sResult;sResult.Format(sFormat, fNumber);return sResult;}NAMESPACE_END;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。