【问题标题】:Best way to Convert Integer to Word将整数转换为 Word 的最佳方法
【发布时间】:2023-04-08 22:45:01
【问题描述】:

integer 变量转换为word 的最佳方法是什么?

我有 integer 变量 Competencia.Anoword 变量YearOf(TFilialTabelaProcessosAdministrativosJudiciais(ListaProcessos[index]).InicioValidadeEvento))

我需要比较两者,如何更改两者的类型?

【问题讨论】:

  • 这个问题对我来说不是很清楚。 YearOf 返回一个word 变量,这是什么问题?
  • @Fabrizio,我已经改变了问题..
  • 您收到的错误信息是什么?
  • 您不需要将整数转换为单词。而是将单词 var 分配给整数一。但在大多数情况下,您可以只比较单词和整数(编译器会为您扩展单词)

标签: delphi type-conversion integer word


【解决方案1】:

无需将integer 转换为word 进行比较。

Integer 的范围为 -2,147,483,6482,147,483,647

Word 仅从 065,535

如果您尝试将Integer 分配给Word,它将被位剪辑!

procedure TForm1.Button1Click(Sender: TObject);
var Var1 : Integer;
    Var2,
    Var3 : Word;
begin
 Var1 := 131071;
 Var2 :=  65535;
 if Var1 = Var2
  then MessageDlg('Var1 = Var2 ('+IntToStr(Var1)+' = '+IntToStr(Var2)+')'  ,mtInformation,[mbOK],0)
  else MessageDlg('Var1 <> Var2 ('+IntToStr(Var1)+' <> '+IntToStr(Var2)+')',mtInformation,[mbOK],0); // <--

 Var3 := Var1;
 if Var2 = Var3
  then MessageDlg('Var2 = Var3 ('+IntToStr(Var2)+' = '+IntToStr(Var3)+')'  ,mtInformation,[mbOK],0) // <--
  else MessageDlg('Var2 <> Var3 ('+IntToStr(Var2)+' <> '+IntToStr(Var3)+')',mtInformation,[mbOK],0);
end;

在第一个IF中Var1Var2显然不一样。

Var1 Integer(4 字节)然后分配给 Var3 Word(2 字节)。 Integer 的高 2 字节被剪掉,所以第二个 IF 为真!

【讨论】:

  • 不知道 bitclipt 是什么意思。我不认为会有剪辑。我不确定您的示例是要显示什么。那么问题的答案呢?你如何比较整数和单词?
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 2012-03-23
  • 1970-01-01
  • 1970-01-01
  • 2014-06-21
  • 2011-04-13
  • 1970-01-01
  • 2023-03-26
相关资源
最近更新 更多