Delphi中的布尔类型

转载 2016年05月31日 11:00:54

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在异同:

Boolean

False < 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'

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

False   False            '0'

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

Delphi中的几种布尔类型详解

Delphi中预定义的布尔类型有四种:Boolean ,ByteBool,WordBool,LongBool。其中,Boolean 类型是首选布尔类型,其余三种是为其它编程语言和Windows 环境提...
  • chenyq2008
  • chenyq2008
  • 2014年10月28日 15:45
  • 2207

Delphi中的布尔类型

Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型。 这四种类...
  • qingfeng45697
  • qingfeng45697
  • 2016年05月31日 11:00
  • 539

delphi编程里bool跟boolean类型的区别

bool是LongBool类型。 Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的...
  • zisongjia
  • zisongjia
  • 2017年06月09日 16:26
  • 171

js 布尔类型

js中的布尔类型 在js里,有好几种基本数据类型(与java类似)。其中的一种基本数据类型就是布尔类型(即Boolean),它只有2个值,true/fasle。 布尔类型true/fasle与字符...
  • B_qxzb
  • B_qxzb
  • 2015年11月11日 21:47
  • 2135

MySQL中如何使用布尔类型

在SQL标准中,存在bool和boolean类型。在MySQL中也可以定义这两种类型,但是这两种类型最终转换成的是TINYINT(1)类型。 所以在MySQL中,布尔类型等价于TINYINT(1)。...
  • Dylancy
  • Dylancy
  • 2017年07月25日 17:33
  • 1796

反汇编学习之字符、字符串、布尔类型

字符串是由多个字符按照一定排列顺序组成的,meige
  • chienchia
  • chienchia
  • 2014年06月06日 19:27
  • 786

Delphi中布尔类型辨析

Delphi中布尔类型辨析苏涌(2000-09-29)  Delphi中预定义的布尔类型有四种:Boolean ,ByteBool,WordBool,LongBool。其中,Boolean 类型是首选...
  • ghj1976
  • ghj1976
  • 2001年01月11日 08:54
  • 1248

关于mysql布尔类型的存储

首先mysql是不支持布尔类型的,当把一个数据设置成布尔类型的时候,数据库会自动转换成tinyint(1)的数据类型,其实这个就是变相的布尔。 默认值也就是1,0两种,分别对应了布尔类型的true...
  • kenzyq
  • kenzyq
  • 2017年01月03日 17:56
  • 4734

Delphi中的布尔类型

Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型。这四种类型的...
  • yujianqiu
  • yujianqiu
  • 2005年02月04日 17:47
  • 879

Delphi7.完美经典

  • 2011年09月25日 11:44
  • 44.21MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi中的布尔类型
举报原因:
原因补充:

(最多只允许输入30个字)