delphi byte类型算术运算


本文整理自网络,侵删。

 

byte8位无符号数,与int型可以直接运算,但要注意byte型的最大值是255,运算可能产生越界问题。西现举例说明,建一个工程,button事件中写如下语句:

procedure TForm1.btn1Click(Sender: TObject);
var i:Byte;

begin
for i := 1 to 255 do
begin
ShowMessage('正常循环');
end;
for i := 1 to 256 do
begin
ShowMessage('没有循环');
end;
end;

编译,delphi会报错,因为256超过了byte型的最大长度。

procedure TForm1.btn1Click(Sender: TObject);
var i:Byte;

begin
for i := 1 to 255 do
begin
ShowMessage('正常循环');
end;
maxbuffer := 256;
for i := 1 to maxbuffer do
begin
ShowMessage('没有循环');
end;
end;

编译不会报错,正常运行,但是运行后并不会弹出提示‘没有循环’,就是说delphi在编译时不会去判断一个变量的值,但是运行时实际上已经地址越界了。

相关阅读 >>

Delphi 对汉字字符串的截取问题

Delphi 能否把.txt文件的数据导入到access数据库中

Delphi 获取webbrowser中的图片

Delphi 获取外部程序句柄与发送消息

Delphi now、date、time、currentyear - 当前日期

Delphi获得硬盘所有分区

Delphi runasadmin 运行程序并申请管理员权限

Delphi sqlite 自动编号的实现

Delphi2009之timage

在rad studio Delphi或c++安卓应用中使用自定义java库

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...