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

来源:百度知道 编辑:UC知道 时间:2024/06/20 02:41:43
为什么字符4在Free Pascal中既不小于-32768也不大于32767

。。。。。。。。。。。。。这什么问题
4肯定比负数大,所以不小于-32768
不如32767大,所以不大于32767。
楼主是打错了还是。。。
如果“4”定义的是字符型的话,那么根本不能比较
因为类型不一样

楼上也没说清楚嘛

'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 < 52 < 32767

代码如下

Program ex;
begin
writeln(integer('4') < 32767);
writeln(integer('4') > -32768);
end.

Free Pascal 中编译

因为 ‘4’的ASII码是52
又因为 -32768<52<32767
所以 -32768<‘4’<32767

一帮ebw,是这样的
字符4有16个存储位,一个用来存储正负,15个存储数据,因为一个位可以是0或1,所以15个存储位可以存2的15次方个数,加上正负,就是32768~-32768这些,但还有0,也算一个数,所以字符4就可以存储32767~-32768这些数

呃,基本上就是楼上说的那些。