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

【delphi11】delphi基础探索【二、 Delphi 的基本语法:变量声明、数据类型、控制语句】 整型IntegerShortIntLongIntByte等)Integer:常用的整数类型,占用 4 个字节。ShortInt:较小的整数,占用 1 个字节。LongInt:较大的整数,占用 4 个字节。Byte:无符号的小整数,占用 1 个字节。浮点型RealDoubleExtended等)Real:单精度浮点数。Double:双精度浮点数。Extended:扩展精度的浮点数。字符串类型StringCharString:字符串类型,用于存储文本。Char:字符类型,存储单个字符。布尔型。 阅读详情
bool是LongBool类型。

 

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

参见:

1. delphi pchar string互转函数。

2. delphi override 和 overload 的区别。

Delphi语言的数据类型 delphivar// 定义一个指向整数的指针Delphi语言提供了多种数据类型,能够满足不同的开发需求。通过对基本数据类型、复合数据类型、指针类型、动态数组及文件类型的总结,我们可以看到Delphi语言在数据处理方面的强大能力。无论是进行科学计算、数据解析、还是开发复杂的用户界面,都能找到合适的数据类型进行处理。掌握这些数据类型的使用,可以有效提高编码效率和程序性能,从而开发出更优秀的应用程序。希望本文能帮助大家更好地理解Delphi语言的数据类型,为今后的编程实践打下坚实的基础。 阅读详情

相关推荐

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

bool是LongBool类型。 Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型。 这四种类型的布尔值占用内存的数量如下: Boolean 1 Byte ByteBool 1 Byte WordBool 2 Bytes(1

shao9900的专栏 1156

Delphi中布尔类型辨析

Delphi中布尔类型辨析苏涌(2000-09-29)  Delphi中预定义的布尔类型有四种:Boolean ,ByteBool,WordBool,LongBool。其中,Boolean 类型是首选布尔类型,其余三种是为其它编程语言和Windows 环境提供兼容性支持。这些布尔类型在使用上大同小异,但如果混淆使用将可能会有意外结果。   现做简单辨析供大家参考

蝈蝈俊.net 1745

【Delphi 基础知识 6】常用的数据类型

Delphi 支持多种数据类型,本文介绍一些常见的 Delphi 数据类型及其示例

记录日常技术经验 2464

php赋值boolean,php 的Boolean类型

JS中字符串的true转化为boolean类型的truevara="True"; a=eval(a.toLowerCase()); alert(typeofa);//boolean alert(a);//true 正解,eva ...javaScript中其他类型的值转换为Boolean类型将javaScript中其他任意类型的值转换为对应Boolean类型的值. 一 将number类...

weixin_42361623的博客 267

Delphi调用海康HCNetSDK的结构体对齐与函数指针实战指南

在Windows平台进行安防监控系统开发时,C语言SDK(如海康HCNetSDK)与Delphi的互操作是典型跨语言集成场景。其核心原理在于内存布局一致性——结构体字节对齐、调用约定匹配、指针类型语义等价。技术价值体现在避免因字段偏移、栈失衡或编码错位导致的崩溃与数据异常,保障视频登录、实时预览、云台控制等关键功能稳定运行。典型应用场景包括NVR集中管理客户端、嵌入式巡检终端及雪亮工程视频调度平台。本文聚焦Delphi中packed record、{$A8}对齐、stdcall函数指针及AnsiString

weixin_32430941的博客 299

基于Java+Maven+Testng+RestAssured+Allure+Jenkins搭建一个接口自动化框架

2、有一个提取表达式列,通过编写每个接口的JSON提取表达式,后边在解析Excel时,对接口执行后的响应数据用该表达式提取出来,保存到环境变量,如果某些接口需要前置接口的响应数据,我们就可以从环境变量中获取该数据出来,从而解决了接口关联的问题。1、在之前介绍过全局配置类Contants中添加一个控制台日志开关控制权限,如果选择为false,则控制台不输出日志,将日志输出到allure报表,选择为true,则在控制台输出日志,不输出到allure报表。

专注于技术分享的博主 1183

Delphi的类型转换

 Delphi是一种强类型转换的语言。在VC中,赋值符用″=″,例如x=1;到了Delphi赋值符就变成了″:=″,例如x:=1。 从赋值时用符号″:=″而不用″=″,就隐约可见Delphi对类型匹配要求之严,即赋值符右边的类型一定要和左边一致。用惯了VB或VC的程序员,初用Delphi,稍不留神,就会出现类型不匹配的错误。对初学者而言,类型转换也是学习Delphi的重点和难点,为此本文特对Del

sdjnjdxc的专栏 2303

微信小游戏CE修改实战:从入门到精通(附防作弊思路)

本文深入探讨微信小游戏的安全攻防实战,重点分析CE修改、反编译和重打包等安全风险。通过详细的内存修改案例和代码保护方案对比,提供从客户端到服务端的全方位防护策略,帮助开发者构建有效的防作弊体系。

m2n3b4v5c6的博客 1141

Delphi 多线程编程

原文地址:Delphi多线程编程作者:liwenchao828 多线程的基本概念 WIN 98/NT/2000/XP 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用CPU 运行时间和资源,或者说,把CPU 时间划成片,每个片分给不同的线程,这样,每个线程轮流的“挂起”和“唤醒”,由于时间片很小,给人的感觉是同时运行的。 多线程带来如下好处:(自己...

qq_18932003的博客 410

ElaticSearchUtil工具类封装

package com.xxx.util; import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse; import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction; import org.elasticsearch.action.ad

会飞的狼 6295

WIFI基础入门--802.11g--增强速率物理层ERP--15

WIFI基础入门--802.11--增强速率物理层--191.802.11g的组件保护机制 1.802.11g的组件 802.11g其实是将好几种物理层规范合而为一。虽然统称为增强速率物理层(Extended Rate PHY简称ERP),但是实际上ERP有好几种不同的方式: ERP-DSSS与ERP-CCK 这两种模式向下兼容于原始直接序列规范(1Mbps与2Mbps),以及所提到的802.11...

香蕉一号 4619

C++头文件转Delphi工具:原理、实现与跨语言调用实践

在软件开发中,跨语言调用是连接不同技术生态、复用成熟库功能的关键技术。其核心原理在于理解不同编程语言的二进制接口(ABI),包括数据类型的内存布局、函数调用约定(如stdcall、cdecl)以及符号导出规则。这项技术的工程价值在于能够打破语言壁垒,让开发者无需重写底层库,即可在熟悉的开发环境中利用高性能的C/C++组件。典型的应用场景包括在Delphi或Pascal项目中集成Windows驱动、音视频处理或行业算法库。本文通过解析一个自动转换工具的设计与源码,深入探讨了如何构建连接C/C++与Delphi

weixin_30756499的博客 409

基于STM32的智能循迹小车设计(基础版)

基于STM32的智能循迹小车设计 硬件准备 1、小车底盘+四直流电机(带轮) 2、STM32F103C8T6核心板 3、12V 8700mAh锂电池(可以用几节18650锂电池) 4、循迹模块 选择的是TCRT500L,五路集成在一起,集成度比较高,但是可能不如五个单独的循迹模块好用 5、L298N电机驱动模块 四驱车为啥用L298N电机驱动模块? 可以把左边的两个电机并联,用输出A控制。把右边的两个电机并联,用输出B控制。 12V供电接电源正极,供电GND接电源负极和核心板GND,5V供电接核心

Rendezvous1的博客 3万+

delphi中的Format函数详解

delphi中的Format函数详解作者: sdjxmikill 标题: delphi中的Format函数详解  Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 首先看它的声明: function Format(const Format: string; const Args: array of const)

Qi_jianzhou的资料室 2104

【Unity】RPG2D龙城纷争(十九)流程与UI界面(终章)

本章为RPG2D系列的终章,在之前的章节中我们已经完成了游戏的所有基本功能,那么用流程与UI界面将其串联起来才是我们整个游戏原型完善的标志。

神码编程 917

【知识分享】单端到混合S参数转换指南

信号完整性(SI)工程师几乎总是必须使用S参数,因为许多的高速接口和行业标准都正在转向串行链路架构,并使用基于S参数测量的频域限制指标,了解其工作过程将会很有意义。

一只豌豆象的博客 1580
上一篇: 在Delphi里实现[int map string]对
下一篇: 如何将Bitmap位图与base64字符串相互转换[delphi]
shao882
博客等级 码龄12年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值