如何给16进制赋值?(100分)

  • 主题发起人 主题发起人 woodandwater
  • 开始时间 开始时间
W

woodandwater

Unregistered / Unconfirmed
GUEST, unregistred user!
一般给16进制赋值如下
a:byte
a:=$5h
但我现在有一个表示16进制的字符串str:='5h'
怎么将把这个字符串表示的16进制的值赋给a ?
谢谢
 
a := StrToInt('$' + str);

当然,str中的字符'h'要先去掉。
 
如果这个16进制数不表示整数,能用inttostr吗?
 
如果要转换16进制小数的话,只能整数部分和小数部分拆开处理了。
 
不是这个意思,我这个16进制的数有可能表示字母,不表示数字
 
表示字母?

你是说表示字母的ASCII值吗?
 
是啊,是一个硬件的初始化信息,不一定是数字
 
那可以的。

例如:
硬件初始化信息为字母'X',相应的ASCII码(10进制)为:
88

16进制为
58

则程序为

str := '58';
a := StrToInt('$' + str);
 
假设我现在有一字符串str:='00100010'或str:='2a'怎样将这个字符串表示的值赋给一
个byte型的数
假设 a:byte
但inttostr,strtoint只能在整数和字符串之间转换,我现在的这个str不一定是整数
可能是其他字符,我只是想把字符串表示的8个0或1赋给一个8位的byte型的数
 
针对于一个硬件信息,应该能确定一种数据信息(数据、字符或其他),如此针对编写就
可以了吧,你不会想编一个什么都能对付的程序吧。
 
woodandwater:
我被你搞胡涂了,你用我的方法试过没有?

a := StrToInt('$2a');难道不能用吗?
 
谢谢你,那2进制呢?
 
二进制字符串没有现成的转换函数,自己写一个吧,很简单的。
需要我写给你吗?
 
谢谢,如果方便的话就写在我发的另一个帖子上,我把那个帖子的分数也给你
 
多人接受答案了。
 
后退
顶部