gpt4 book ai didi

delphi - 当我给它一个负数时,为什么 Format with '%u' 打印出错误的值?

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

为什么 Format('%u', [-100]) 结果是 '4294967196'?我在 D7 和 XE2 中对此进行了测试。

documentationFormat 函数上说:

%u Unsigned decimal. Similar to %d, but no sign is output.

所以我预计结果为 '100'

这是一个错误吗?

最佳答案

不,这不是错误。

你在告诉Format第一个参数是无符号整数,但实际上您传递了一个有符号整数。该有符号整数被解释为无符号整数,并且有符号值 -100 的位模式相当于无符号值 4294967196

事实上,您的代码有错误。格式字符串定义了编译器无法强制执行的约定,因为 Format 的参数是弱类型的。您有责任确保当您 promise 传递无符号值时,您确实传递了无符号值。这里代码中的错误在逻辑上相当于传递一个字符串或一个浮点值,这是一个您更容易识别的错误。

关于delphi - 当我给它一个负数时,为什么 Format with '%u' 打印出错误的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11292741/

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