主题:请教几个pascal语法
boxertony
[专家分:23030] 发布于 2005-10-06 20:34:00
本人不懂pascal,想把一个pascal程序改编成c版本,有几个语法看不懂,请指教。
1。
type
Pls = ^Tls;
Tls = array[byte] of byte;
这是什么意思?
2。Pls(mask)^[k]
(注:Pls为上面定义的Pls,mask为指针,定义形式为:mask:pointer)
这是什么意思?
3。
k:integer
k and 1 表示的是按位与运算还是逻辑与运算?
回复列表 (共6个回复)
沙发
林记 [专家分:1680] 发布于 2005-10-06 20:52:00
1.
把Pls定义成Tls的指针类型
也就是说
var
x:Pls;
相当于: x:^array [0..255] of byte;
2.
把mask强制转换成Pls类型
3.逻辑
板凳
boxertony [专家分:23030] 发布于 2005-10-06 21:13:00
谢谢,不过,关于第3问,我还是不解,我看到的一个循环如下:
for k := 1 to $FF do
bits[k] := bits[k shr 1] + k and 1;
如果这儿and是逻辑运算的话,k and 1应该永远为1吧,这样岂不是没有意义了?
3 楼
林记 [专家分:1680] 发布于 2005-10-06 21:18:00
哦,对不起是我错了,
那应该是位操作了
4 楼
Benix [专家分:720] 发布于 2005-10-12 17:34:00
3搂能讲的详细点吗
5 楼
天空飞雪 [专家分:960] 发布于 2005-10-12 18:36:00
什么叫按位与运算?????
6 楼
boxertony [专家分:23030] 发布于 2005-10-13 10:45:00
就是两个数相应的位逐位进行与运算
我来回复