在 Pascal 中处理十六进制数
Manipulating hexadecimal numbers in Pascal
我目前正在阅读二进制和十六进制数字操作,我发现完成一项任务很困难,想知道是否有人可以帮助我澄清这个问题。
我有一个十六进制数“04831037”,我需要通过 Pascal 程序将第一个数字 (0) 替换为“1”。我不知道该怎么做。
我知道如何通过以下方式将整数转换为十六进制值:
var
iNumber : Integer;
begin
iNumber := 75698231;
writeln(IntToHex(iNumber, 8));
end.
> Output: 04831037
但现在我对如何替换输出中的单个数字感到困惑。任何帮助将不胜感激
十六进制数以 16 为底,即每个数字代表一个值 0..15.
形成ex的值。 16,即可以使用 $10 以下表达式:
(注意:$符号表示该值为十六进制值)
16 = = 1*161 + 0*160
值 28 ($1C) 表示为:
28 = C = 1*161 + 12*160
要将 $10000000 添加到一个数字,请使用
000000 = 1*167
代码如下:
iNumber := iNumber + 000000;
我们来看问题:
I have a hexadecimal number '04831037' and I need to replace the first number (0) with a '1'
这意味着您将先减去 $00000000 的数字,然后加上 $10000000。
代码为:
iNumber := 831037;
iNumber := iNumber - [=11=]000000 + 000000;
WriteLn(IntToHex(iNumber,8)); // Writes '14831037'
我目前正在阅读二进制和十六进制数字操作,我发现完成一项任务很困难,想知道是否有人可以帮助我澄清这个问题。
我有一个十六进制数“04831037”,我需要通过 Pascal 程序将第一个数字 (0) 替换为“1”。我不知道该怎么做。
我知道如何通过以下方式将整数转换为十六进制值:
var
iNumber : Integer;
begin
iNumber := 75698231;
writeln(IntToHex(iNumber, 8));
end.
> Output: 04831037
但现在我对如何替换输出中的单个数字感到困惑。任何帮助将不胜感激
十六进制数以 16 为底,即每个数字代表一个值 0..15.
形成ex的值。 16,即可以使用 $10 以下表达式: (注意:$符号表示该值为十六进制值)
16 = = 1*161 + 0*160
值 28 ($1C) 表示为:
28 = C = 1*161 + 12*160
要将 $10000000 添加到一个数字,请使用
000000 = 1*167
代码如下:
iNumber := iNumber + 000000;
我们来看问题:
I have a hexadecimal number '04831037' and I need to replace the first number (0) with a '1'
这意味着您将先减去 $00000000 的数字,然后加上 $10000000。
代码为:
iNumber := 831037;
iNumber := iNumber - [=11=]000000 + 000000;
WriteLn(IntToHex(iNumber,8)); // Writes '14831037'