<span style="font-family: Arial, Helvetica, sans-serif;">MFC 中输入32位地址和数据的Edit控件关联的变量为DWORD m_Addr,m_Data,</span>

在控件中输入类似“0x4F0C”的地址或数据时,直接利用UpdateData(TRUE)不能获得DWORD 类型的m_Addr,m_Data

因此只能使用GetDlgItemText(int nID,CString &cstr)来获得相关的CString类型

1、16进制的字符串转换为DWORD类型

</pre><pre name="code" class="cpp"><pre name="code" class="cpp">DWORD CConfigureDlg::HexStringToDword(TCHAR * szBuf)
{DWORD dwValue = 0;BYTE bValue;BYTE k;for(k=0;k<10;++k){if(*szBuf >= '0' && *szBuf <= '9'){bValue = *szBuf - '0';}else if(*szBuf >= 'a' && *szBuf <= 'f'){bValue = *szBuf - 'a' + 10;}else if(*szBuf >= 'A' && *szBuf <= 'F'){bValue = *szBuf - 'A' + 10;}else if(*szBuf =='x' || *szBuf == 'X'){dwValue = 0;szBuf ++;continue;}else{break;}dwValue <<= 4;dwValue |= bValue;szBuf ++;}return dwValue;
}

2、DWORD类型转换为16进制字符串

void CConfigureDlg::DwordToHexString(DWORD dwValue,TCHAR *szBuf)
{BYTE bValue;BYTE k;*szBuf = '0';*(++szBuf)='x';++szBuf;for(k=0;k<8;++k){bValue = (BYTE)((dwValue & 0xF0000000)>>28);if(bValue == 0){dwValue <<= 4;continue;    }if(bValue < 10){*szBuf = bValue + '0';}else{*szBuf = (bValue-10)+'A';}dwValue <<= 4;szBuf ++;}*szBuf = '\0';
}

因为得到的为CString 类型,需要在CString 和 TCHAR *之间进行转换

1、CString转换为TCHAR *类型

TCHAR *CConfigureDlg::CString2TCHAR(CString &str)
{int iLen = str.GetLength();TCHAR *szRs = new TCHAR[iLen];lstrcpy(szRs,str.GetBuffer(iLen));str.ReleaseBuffer();return szRs;
}

2、TCHAR *类型转化为CString类型

TCHAR * szBuf = new TCHAR[10];
DwordToHexString(m_ReadData,szBuf);
CString str;
str.Format(_T("%S"),szBuf);

DWORD类型与16进制字符串之间的相互转换相关推荐

  1. java int 16进制字符串_关于将java int类型转换为16进制字符串的问题

    package p5.com.byd.mes.dev.tool.baseToChar; /** * 任意进制转换器 * @author solar */ public class Decimal { ...

  2. js 16进制字符串 转 ArrayBuffer

    16进制字符串 转 ArrayBuffer 的应用场景是给单片机发送指令. 16进制字符串 转 ArrayBuffer 方法一: var hexStr = 'cf 03 00 00 00 00 1e ...

  3. java 颜色 16进制转换_Java中Color和16进制字符串互相转换的方法

    1.原理 主要是调用了toHexString(将int类型转为16进制字符串).parseInt(将字符串解析为int)这两个方法. 2.代码 public static void main(Stri ...

  4. 16进制转double dotnet_IEEE 16进制字符串转化为double类型

    因项目需要,需要将内存中的64位16进制字符串表示成double.如下: #include #include #include #include #include using namespace st ...

  5. 将uint8_t类型的16进制字符转化转换为string字符串

    碰到一个需求,需要把硬件读到的uint8_t类型的16进制数据转化为string类型的字符串. 例如,如果读到到的数据是一个uint8_t类型的数组uint8_t code=[5]={0XAA, 0X ...

  6. java 16进制字符串转base64_16进制字符串,byte[] ,base64三者之间的转换

    packagecom.lgdz.qydevice.utils; importcn.hutool.core.codec.Base64; importcn.hutool.core.util.Charset ...

  7. 16进制字符串转成字节数组、字节数组转16进制字符串、16进制字符串转成2进制字符串、中英文 字符串转16进制、16进制转换成中英文 字符串

    因为需要与硬件相互通讯 用到了这些方法 亲测可用 /*** 16进制表示的字符串 转换为字节数组** @param hexString 16进制表示的字符串* @return byte[] 字节数组* ...

  8. java 字节 16进制_Java字节数组和16进制字符串的互相转化

    背景基础知识: 1.1. "字符"是由数字来表示的 先来重新了解一下计算机是如何处理"字符"的,这个原理是大家必须记住的,特别是在用JAVA写程序的时候,万万不 ...

  9. qt 中文转十六进制_QT中16进制字符串转汉字

    最经在研究AT指令接受短信,短信是unicode编码,接受后需要根据系统的编码方案进行相关的转码 比如接受到了一串字符4F60597D,它是"你好"的unicode编码,一个uni ...

最新文章

  1. 重新解析 REST Service(REST Service 的最佳实践,第 1 部分)
  2. 数组精选题目三连(5)
  3. UVA11917 Do Your Own Homework【map】
  4. PHP正则表达式检查日期是YYYY-MM-DD格式
  5. Atitit 网络技术体系图 目录 1. 的三网融合是 1 1.1. 电话网、有线电视网 1 1.2. 计算机网 1 2. 计算机网 1 2.1. 互联网 1 2.2. 局域网 1 3. 第1章 计
  6. 2022跨年代码(有烟花)
  7. Video Copilot VCReflect for Mac/win (AE倒影插件) 支持2022多帧渲染​
  8. navicat12注册机生成相应注册码
  9. python解析can报文_解析.DBC文件, 读懂CAN通信矩阵,实现车内信号仿真
  10. 分享一种免费的.FLV格式视频转.MP4的方法,方便高效且不用迅捷转换器。。。
  11. 飞塔防火墙命令行终端修改输出长度
  12. macbook视频格式转换_mac视频格式转换怎么操作?如何将视频转换成mac能播放的格式?...
  13. ATW热泵市场现状及未来发展趋势分析
  14. 算法题---leetcode-1
  15. 梅宏:学海无涯苦作舟
  16. 公开披露:美国如何联合作战并入侵ISIS网络
  17. 证明小于60阶的无非阿贝尔单群用到的定理
  18. Ajax 技术汇总(转载)
  19. android 监听短信并获取验证码
  20. python满天星效果图_JavaScript实现 满天星 导航栏

热门文章

  1. 降维:特征选择与特征提取
  2. Caption Anything来了!可以解读清明上河图,细粒度可控的图像描述!
  3. linux的简单命令介绍2
  4. 关于DB2数据库工作中常用的语法总结
  5. NYOJ D的小L 酒馆浪人的博客
  6. 数据分析全球油产量及油价变动
  7. 战斗服务器响应超时 是否尝试重连,和平精英瞬间落地bug操作方法技巧解析
  8. 夏季 畅快淋漓_对学生的一些夏季建议
  9. Linux sudo:无法解析主机 解决方案
  10. 完善2020淘宝618赛车活动脚本