加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 当我给它一个负数时,为什么带有’%u’的格式打印错误

发布时间:2020-12-15 09:48:19 所属栏目:大数据 来源:网络整理
导读:为什么格式(‘%u’,[ – 100])会导致’4294967196’?我在D7和XE2中对此进行了测试. Format函数上的documentation表示: %u Unsigned decimal. Similar to %d,but no sign is output. 所以我希望结果为’100′. 这是一个错误吗? 解决方法 不,这不是一个错
为什么格式(‘%u’,[ – 100])会导致’4294967196’?我在D7和XE2中对此进行了测试.

Format函数上的documentation表示:

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

所以我希望结果为’100′.

这是一个错误吗?

解决方法

不,这不是一个错误.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读