Delphi里ByteBool/ WordBool/ LongBool 和Boolean有什么区别?

小雪榇订sz74
推荐于2016-05-22 · TA获得超过3107个赞
知道小有建树答主
回答量:963
采纳率:0%
帮助的人:2253万
展开全部
后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型。 这四种类型的布尔值占用内存的数量如下: Boolean 1 Byte ByteBool 1 Byte WordBool 2 Bytes(1 Word) LongBool 4 Bytes(2 Words) 对于ByteBool,WordBool和LongBool三种类型True常量的值为非零,False为零,可以用Ord函数验证; 而对于Boolean类型,True常量的值为1,False为零。在期望Boolean值的上下文中,编译器会将ByteBool,WordBool和LongBool三种类型的非零值转换为True。 然而,在Delphi中布尔表达式和Integer/Real是不兼容的。下面的表格对比了Boolean与ByteBool/WordBool/LongBool在异同:BooleanFalse < True Ord(False) = 0 Ord(True) = 1 Succ(False) = True Pred(True) = False BoolToStr(True) = -1 //这个函数很变态 BoolToStr(False) = 0 ByteBool, WordBool, LongBool False <> True Ord(False) = 0 Ord(True) <> 0 Succ(False) = True Pred(False) = True BoolToStr这个函数最莫名其妙了,明明说True的值是1,而它却告诉我们True是-1。函数的原形是: function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string; 下面这个表是函数的转换规则: B UseBoolStrs Value of returned string True False '-1'
希奕际
2024-04-10 广告
剑桥文理与剑桥艺术学校中国 基于剑桥文理学校优质的海外校本部资源和课程方向,现开设四类课程:艺术与设计课程、音乐与戏剧课程、英国A-Level课程、波士顿文理中学美高与AP课程。荣获2021胡润百学中国国际学校艺术类领军学校奖,2022胡润... 点击进入详情页
本回答由希奕际提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式