free pascal 中的数据类型及每种类型所占的字节

详细一些谢谢了字符⼀字符串所占字节的大小是多少
2024-12-04 06:28:33
推荐回答(1个)
回答1:

Free pascal标准数据类型、内置函数等必备知识
一、实型整型

实型:数值范围:占字节数:有效位数
real:2.9e-39..1.7e38:6:11..12
single:1.5e-45..3.4e38:4:7..8
double:5.0e-324..1.7e308:8:15..16
extended:3.4e-4951..1.1e4932:10:19..20
comp:-2**63+1..2**63-1:8:19..20

整型:数值范围:占字节数:格式
shortint:-128..127:1:带符号8位
integer:-32768..32767:2:带符号16位
longint:-2147483648..2147483647:4:带符号32位
byte:0..255:1:无符号8位
word:0..65535:2:无符号16位
longword:0..4294967295:4
Cardinal:either word, longword or qword:size 2/4/8
Int64:-9223372036854775808..9223372036854775807:8
QWord:0..18446744073709551615:8

二、常用的pascal内置函数和过程

标准常量False,Maxint,True,Maxlongint,Pi
标准类型Boolean,Char,Real,Integer,Longint,等等
标准函数Abs,Arctan,Chr,Cos,Eof,Eoln,Exp,Ln,Odd,Ord,Pred,Round,Sin,Sqr,Sqrt,Succ,Trunc
标准过程Dispose,Get,New,Pack,Page,Put,Read,Readln,Reset,Rewrite,Unpack,Write,Writeln
标准文件Input,Output

(1)自变量必须为整型的标准函数:
(A)前趋函数:Pred(x),函数结果类型为整型,如:Pred(4)=3
(B)后继函数:Succ(x),函数结果类型为整型,如:Succ(4)=5
(C)奇函数:odd(x),结果为布尔型。如:Odd(13)=True
(D)字符函数:Chr(x)其中x为ASCII码,函数结果为字符型。如:Chr(65)='A'
(2)自变量为整型(或实型),但函数值类型为实型的标准函数;
(A)平方根函数:Sqrt(x)
(B)整数函数:Int(x) 取整数部分,如:INT(3.85)= 3.0
(C)小数函数:Frac(x)
(D)正弦函数:Sin(x)
(E)余弦函数:Cos(x)
(F)反正切函数:Arctan(x),单位为弧度
Pascal中无正切函数,用Sin(x)/ Cos(x)代替
(G)指数函数:Exp(x),即求ex
(H)对数函数:Ln(X),即求x的自然对数logex
幂运算 ∵ xy=eylnx , ∴ xy =Exp(y*ln(x)
注意:在FreePascal中,幂的表示: xy==power(x,y) 或 xy=x**y
(I)随机函数:Random(x:word),无x时,函数值取[0,1)之间的随机小数;有x 且为Word类型时,函数值取[0,x)之间的随机整数。前面加上:Randomize语句。
(J)圆周率函数PI=3.1415926536
(3)自变量为整型(或实型),但函数值类型与x一致的标准函数
(A)Abs(x):绝对值函数,如:Abs(-2)=2 Abs(-2.0)=2.0000000000E+00
(B)Sqr(x):平方函数如,如:Sqr(4)=16 Sqr(4.0)= 1.6000000000E+01
(4)自变量为整型(或实型),但函数值类型为整型的标准函数
(A)Trunc(x):取整数部分,如:Trunc(3.85)=3
(B)Round(x):四舍五入,如:Round(2.8)=3 Round(-2.8)=-3
(5)加1函数:inc(x) 如:inc(5)=6,inc(5,8)=13
(6)减1函数 dec(x) 如:dec(5)=4 dec 5,3)=2

文件函数:
(1) Eof(f)或 Seekeof(f)未读到文件结束符“Chr(26) ”或 “Ctrl+Z”时,函数值为false; 读到文件结束符时,函数值为true;
(2) Eoln(f)或SeekEolf(f)未读到行结束符“Chr(13) ”时,函数值为false; 读到行结束符或文件结束符时,函数值为true;

字符函数
(1)小写字母转为大写字母Upcase('x') ,如:Upcase ('a')='A'
(2)前趋函数:Pred('x'),函数结果为字符型,如:Pred('4')='3'
(3)后继函数:Succ('x'),函数结果为字符型,如:Succ('A')='B'
(4) 序数函数:Ord('x'), 函数结果为整型,求字符对应的ASCII码,如:Ord('A')=65
(5)字符函数:Chr(x) ,x为整型,函数结果为字符型,,求ASCII码对应得字符,如:Chr(65)='A'

字符串函数
(1)求长度length
定义:function Length(S: String): Integer;
(2)复制子串copy
定义: function Copy(S: String; Index: Integer; Count: Integer): String;
注意:S 是字符串类型的表达式。Index和Count是整型表达式。Copy 返回S中从Index开始,Count个字符长的一个子串。
(3)插入子串insert
定义:procedure Insert(Source: String; var S: String; Index: Integer);
注意:Source 是字符串类型的表达式。 S 是任意长度字符串类型变量。Index 是整型表达式。Insert 把 Source插在S中Index处。如果结果字符串的长度大于255,那么255之后的字符将被删除。
(4)删除子串delete
定义:procedure Delete(var S: String; Index: Integer; Count:Integer);
注意:S 是字符串类型变量。 Index和Countare是整型表达式。Delete 删除S中从Index开始的Count个字符。如果Index大于S的长度,则不删除任何字符;如果Count大于S中从Index开始的实际字符数,则删除实际的字符数。
(5)字符串转为数值val
定义: procedure Val(S; var V; var Code: Integer);
在这里:S 是由一系列数字字符构成的字符串类型变量;。V 是整型或实型变量;Code 是Integer型变量
注意:Val将S转为它的数值形式。
(6)数值转为字符串str
定义: procedure Str(X [: Width [: Decimals ]]; var S:string);注意:将数值X转成字符串形式。
(7)求子串起始位置pos
定义:function Pos(Substr: String; S: String): Byte;
注意:Substr和S字符串类型表达式。Pos在S中搜索Substr并返回一个integer值。这个值是Substr的第一个字符在S中的位置。如果在S中没有找到Substr,则Pos返回0。
(8)字符完全串连+联
定义:操作符加号+把两个字符串联在一起。
(9)字符串压缩空格串连-
定义:操作符减号-去掉第一个字符串最后的空格后,将两个字符串联在一起。
(10) 将数组批量填入初值,Fillchar(x,sizeof(x),0),将0填入到x数组中,sizeof(x)表示填入的个数

三、3个重要的退出语句
HALT 结束程序,返回操作系统
EXIT 结束过程或函数,返回调用处(在主程序中同HALT)
BREAK 是用来退出其所在的循环语句(CONTINUE是继续当前循环)