Delphi中的布尔类型

张佳乐丶

张佳乐丶

2016-02-19 18:50

下面请跟着图老师小编一起来了解下Delphi中的布尔类型,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
 

Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用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在异同:

 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

Boolean

 

 

False True

Ord(False) = 0

Ord(True) = 1

Succ(False) = True

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

Pred(True) = False

BoolToStr(True) = -1  //这个函数很变态

BoolToStr(False) = 0

 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

ByteBool, WordBool, LongBool

False True

Ord(False) = 0

Ord(True) 0

Succ(False) = True

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

Pred(False) = True

 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

BoolToStr这个函数最莫名其妙了,明明说True的值是1,而它却告诉我们True是-1。函数的原形是:

function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;

下面这个表是函数的转换规则:

B      UseBoolStrs    Value of returned string

True    False            '-1'

True    True             TrueBoolStrs数组的第一个值(default, 'TRUE')

False   False            '0'

False   True             FalseBoolStrs数组的第一个值(default, 'FALSE')

展开更多 50%)
分享

猜你喜欢

Delphi中的布尔类型

编程语言 网络编程
Delphi中的布尔类型

c++中布尔类型的入门教程

编程语言 网络编程
c++中布尔类型的入门教程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

新手入门:C++中布尔类型

编程语言 网络编程
新手入门:C++中布尔类型

理解C++语言的布尔类型和枚举类型

编程语言 网络编程
理解C++语言的布尔类型和枚举类型

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Javascript中的布尔讨论

Web开发
Javascript中的布尔讨论

Delphi中避免使用ClassName判断对象的类型

编程语言 网络编程
Delphi中避免使用ClassName判断对象的类型

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Apache伪静态html(URL Rewrite)设置法

Apache伪静态html(URL Rewrite)设置法

关于动态代理

关于动态代理
下拉加载更多内容 ↓