gpt4 book ai didi

delphi - 在 UnicodeChar 和 Integer 之间进行类型转换安全吗?

转载 作者:行者123 更新时间:2023-12-03 15:50:56 27 4
gpt4 key购买 nike

在 2009 年之前的 Delphi(ANSI 版本)中,您可以使用 OrdChr 将字符转换为字节,反之亦然。这很好,例如当您需要将 char 作为字节操作时:

var
ch: char;
begin
ch:= chr(ord(ch1) xor ord(ch2));
end;

显然,在较新的 Delphis 中,字符不再是一个字节,而是两个字节。那么进行类型转换是否安全:

var
ch: char;
begin
ch:= Char(integer(ch1) xor integer(ch2));
end;

获得相同的结果?到目前为止,我所做的测试即使使用西里尔字母和阿拉伯字符也能正常工作,但你永远不知道。

最佳答案

根本不需要改变任何东西。像以前一样继续使用 ord()chr()。它们的工作方式与新的宽 char 类型完全相同。您的第一个代码块仍然是在 Unicode Delphi 中编写此代码的惯用方式。

虽然 chr() 的文档和ord()暗示这些函数使用 Byte 作为整数类型,不要相信文档。这是错误的。

关于delphi - 在 UnicodeChar 和 Integer 之间进行类型转换安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7926721/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com