在十六进制DELPHI上操作

时间:2014-08-03 02:42:43

标签: delphi hex

我的应用程序必须对十六进制值进行操作。

例如,

如果用户提供的输入是
 0010F750',那么我的应用程序会告诉您用户哪个是最接近的值(来自某些预先定义的值)并通过添加&#给出下一个值39; 0000E500'

我们如何执行Hexa Decimal操作查找最接近,添加,减去DELPHI?

2 个答案:

答案 0 :(得分:6)

对十六进制值执行操作并不意味着什么。数字是数字。十六进制仅仅是使用基数16的表示。

您需要做的就是将这些十六进制字符串转换为整数,您可以使用标准算术运算。

function HexStrToInt(const str: string): Integer;
begin 
  Result := StrToInt('$' + str);
end;

使用+-进行加减。使用IntToHex将值表示为十六进制表示。

答案 1 :(得分:3)

您的应用程序没有也无法对十六进制值进行操作"。相反,它对存储在以字节组织的数据块中的二进制值进行操作。

用户看到的内容以及与PROGRAM合作的内容是两个完全不相关的内容。

二进制的第一个(1)是00000001,十六进制是01,十进制是1,ASCII的十六进制值是31.尝试打印Ord的值(' 1')

您需要将数据的外部表示(以十六进制形式)转换为内部表示形式(整数)。那是大卫早先指出的。

然后您需要应用"舍入"到数值,然后将其转换回十六进制字符串供用户查看。

搜索可以让您实施简单计算器的示例,并且您将更好地理解。