在Free Pascal中字符4是否小于-32768大于32767

[复制链接]
查看11 | 回复6 | 2008-1-22 18:21:48 | 显示全部楼层 |阅读模式
楼上也没说清楚嘛'4'是字符不是串 本身只有 1 Byte(8位);ord('4') = 52二进制为00110100而-32768~~32767是integer ,有 2 Bytes(16位)而且用补码形式表示。32767 =01111111 11111111-32768 = 10000000 00000000不进行强行类型转换的话是不能比较的,编译器会报错。如果硬要比较的会在‘4’前加上一个空byte 即00000000 00110100从而构成一个integer(00000000 00110100)二进制 = 4 + 16 + 32 = 52 十进制-32768-32768);end.Free Pascal 中编译
回复

使用道具 举报

千问 | 2008-1-22 18:21:48 | 显示全部楼层
因为
‘4’的ASII码是52又因为
-32768<52<32767所以
-32768<‘4’<32767
回复

使用道具 举报

千问 | 2008-1-22 18:21:48 | 显示全部楼层
一帮ebw,是这样的字符4有16个存储位,一个用来存储正负,15个存储数据,因为一个位可以是0或1,所以15个存储位可以存2的15次方个数,加上正负,就是32768~-32768这些,但还有0,也算一个数,所以字符4就可以存储32767~-32768这些数
回复

使用道具 举报

千问 | 2008-1-22 18:21:48 | 显示全部楼层
呃,基本上就是楼上说的那些。总之,如果4指的是整形的话,肯定不用比较了。如果4指的是字符型的话,你就ord('4')看看,就明白了
回复

使用道具 举报

千问 | 2008-1-22 18:21:48 | 显示全部楼层
晕!你叫我怎么回答呢?你已经自己回答了:“因为4大于任何一个负数,因为4也小于任何一个5位正整数”(^0^大家来我的空间玩!*-*)字符4应该是string字符串型的,楼主,你说的那个取值范围为-32768至32767 的是整数类型:integer像楼上说的,字符不能与数字比较.....
回复

使用道具 举报

千问 | 2008-1-22 18:21:48 | 显示全部楼层
-32768<4<32767若楼主说的是'4'的ASII码那就是-32768<52<32767
回复

使用道具 举报

千问 | 2008-1-22 18:21:48 | 显示全部楼层
晕~~~~~字符和数字不能比我的oi生涯中还没见过有这么强的家伙
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行