十六进制转换的问题

meCAD 2009-06-13 10:13:28
如何把十六进制的 0x50
分开是5 和0呢?

如果直接赋值给String,成了 p
...全文
101 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2009-06-13
  • 打赏
  • 举报
回复
用数值的办法:
int n = 0x50;
int a = n >> 4;
int b = n & 0x0F;

ShowMessage(a);
ShowMessage(b);
ccrun.com 2009-06-13
  • 打赏
  • 举报
回复
int n = 0x50;
String str = IntToHex(n, 2);
String str1 = str.SubString(1, 1);
String str2 = str.SubString(2, 1);
ShowMessage(str1);
ShowMessage(str2);
痞子酷 2009-06-13
  • 打赏
  • 举报
回复
o
ccrun.com 2009-06-13
  • 打赏
  • 举报
回复
String str9 = "9";
String strF = "F";

int n9 = ("0x" + str9).ToIntDef(0); // n9值为0x09
int nF = ("0x" + strF).ToIntDef(0); // nF值为0x0F

String strA = IntToHex((n9 + 1) & 0x0F, 1); // strA值为"A"
String str0 = IntToHex((nF + 1) & 0x0F, 1); // str0值为"0"
meCAD 2009-06-13
  • 打赏
  • 举报
回复
感谢,另外请问下:

0 1 2 3 4 5 6 7 8 9 a b c d e f

从0到F,怎么循环比较

7+1=8
9+1=A
A+1=B
F+1=0

怎么实现十六进制的增一的运算?

因为我做一个串口通讯的,从串口里读上来的一个十六进制数据中有一个为序列号包,
从0到F,要把收到一组数据中的序列号跟前一个组数据中的序列号比较。是否是增一的
fairchild811 2009-06-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ccrun 的回复:]
用数值的办法:
C/C++ codeintn=0x50;inta=n>>4;intb=n&0x0F;

ShowMessage(a);
ShowMessage(b);
[/Quote]

这个方法好,16进制下位操作比较好
meCAD 2009-06-13
  • 打赏
  • 举报
回复
从来没有用过呢
phyf_Anlymi 2009-06-13
  • 打赏
  • 举报
回复
很简单的问题!
meCAD 2009-06-13
  • 打赏
  • 举报
回复
感谢,另外请问下:

0 1 2 3 4 5 6 7 8 9 a b c d e f

从0到F,怎么循环比较

7+1=8
9+1=A
A+1=B
F+1=0

怎么实现十六进制的增一的运算?

因为我做一个串口通讯的,从串口里读上来的一个十六进制数据中有一个为序列号包,
从0到F,要把收到一组数据中的序列号跟前一个组数据中的序列号比较。是否是增一的

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧