熟悉VC和Delphi的朋友帮忙

lmpeel 2006-08-15 09:47:36
能否帮我将以下代码用delphi重写一下?急,谢谢

int write_com(unsigned char Add, unsigned int *Point)
{
int ret;
unsigned char buffer[4];
unsigned char aa;
unsigned char bb;

buffer[0] = (((*Point)&0x00F0)/0x10)+(((*Point)&0x000F)*0x10);
buffer[1] = ((((*Point)/0x100)&0x00F0)/0x10)+((((*Point)/0x100)&0x000F)*0x10);

aa = buffer[0]>>4; //High byte
bb = buffer[0]<<4; //Low byte
buffer[0] = aa|bb;
aa = buffer[1]>>4;
bb = buffer[1]<<4;
buffer[1] = aa|bb;
ret = 0;

}

有一个地方不知怎么处理 ((*Point)/0x100)&0x00F0 ,前面一步运算出来不是整型就不能再作位运算了。
...全文
168 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小呆之家 2006-08-17
  • 打赏
  • 举报
回复
呵~~,更正下,这是我调试过的。
function write_comm(Add:char;var Point:DWord):integer;
var
ret:integer;
buffer:array [0..3]of char;
aa,bb:byte;

begin
buffer[0]:=char((Point and $00F0) div $10 + (Point and $000F)* $10);
buffer[1]:=char((((Point div $100) and $00F0) div $10)+(((Point div $100) and $000F)*$10));
aa:=byte(buffer[0]) shr 4;
bb:=byte(buffer[0]) shl 4;
buffer[0]:= char(aa or bb);
aa:=byte(buffer[1]) shr 4;
bb:=byte(buffer[1]) shl 4;
buffer[1]:= char(aa or bb);
ret:=0;
end;
小呆之家 2006-08-17
  • 打赏
  • 举报
回复
function write_comm(Add:char;var Point:DWord):integer;
var
ret:integer;
buffer:array [0..3]of char;
aa,bb:char;

begin
buffer[0]:=(Point and $00F0) div $10 + (Point and $000F)* $10;
buffer[1]:= (((Point div $100) and $00F0) div $10)+(((Point div $100) and $000F)*$10);
aa:=buffer[0] shr 4;
bb:=buffer[0] shl 4;
buffer[0]:= aa or bb;
aa:=buffer[1] shr 4;
bb:=buffer[1] shl 4;
buffer[1]:= aa or bb;
ret:=0;
end;
小呆之家 2006-08-17
  • 打赏
  • 举报
回复
var
ret:integer;
buffer:array [0..3]of char;
aa,bb:byte;

begin
buffer[0]:=char((Point and $00F0) div $10 + (Point and $000F)* $10);
buffer[1]:=char((((Point div $100) and $00F0) div $10)+(((Point div $100) and $000F)*$10));
aa:=byte(buffer[0]) shr 4;
bb:=byte(buffer[0]) shl 4;
buffer[0]:= char(aa or bb);
aa:=byte(buffer[1]) shr 4;
bb:=byte(buffer[1]) shl 4;
buffer[1]:= char(aa or bb);
ret:=0;
end;
FigoZhu 2006-08-16
  • 打赏
  • 举报
回复
div 和 / 是一样的,都是舍弃小数点后的内容取整的。
  • 打赏
  • 举报
回复
C的/运算如果用在整数上就相当于整除。
lmpeel 2006-08-15
  • 打赏
  • 举报
回复
div 和 vc 的 / 是一样吗?取整除最后结果会不同吧
  • 打赏
  • 举报
回复
div

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧