这段C程序是什么意思,如何转换成DELPHI的程序,大侠们请帮忙(100)

  • 主题发起人 主题发起人 偶尔幽默
  • 开始时间 开始时间

偶尔幽默

Unregistered / Unconfirmed
GUEST, unregistred user!
unsigned short status,crd_status;do{GT_GetCrdSts(&crd_status);
if(crd_status&1) //这句是什么意思{ return 1;
}}while(!(status&0x8));
//这句是什么意思do{}while(!(crd_status&1));
//这句是什么意思------------(crd_status&1) 、(!(crd_status&1))、(!(status&0x8))怎么分别转换成DLPHI
 
crd_status&1 变量与1大于0,其实就是说明变量crd_status的第1位最少为1((crd_status and 1) >0) 其它的几个部分也差不多, 0x8说明是16进制的8,在delphi下也是可以直接这样用的
 
(!(crd_status&1))是不是可以改成 (crd_status and 1) <> 0
 
(crd_status&1)->(crd_status and 1)<>0(!(crd_status&1))->(crd_status and 1)=0(!(status&0x8))->(status and 8)=0
 
第一行判断这个返回值是不是等于1下面都是一样的翻译成crd_status = 1;crd_status = $8;
 
unsigned short status,crd_status;do{GT_GetCrdSts(&crd_status);
---------------取地址if(crd_status&1) //-----------位逻辑与{ return 1;
}}while(!(status&0x8));
//-----------位逻辑与,0x十六进制符号do{}while(!(crd_status&1));
//-----------位逻辑与
 
do{}while(!(crd_status&1));
改为DELPHI对应的循环应该是repeatuntil ((crd_status and 1) <> 0)还是repeatuntil ((crd_status and 1) = 0)
 
to@iamy你这样的理解是不对的,因为 crd_status and 1 = 1不等于 crd_status =1的,差太远啦, 它的意思只是说明第1位上是非零的,其它的位不限!!
 
感谢各位的参与,结贴了
 
后退
顶部