能否帮我将以下代码用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 ,前面一步运算出来不是整型就不能再作位运算了。
{
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 ,前面一步运算出来不是整型就不能再作位运算了。
解决方案 »
- 有个简单问题
- 我在Delphi或者BCB做的一个Com准备在Asp中调用,
- 点击DBGrid第一栏打开一个窗口的响应事件如何写?
- 50分:TdbEdit连接的是一个时间类型的字段,当输入不合法时如何抢到系统给出错误提示之前我自己做合法性检查
- 给点意见吧!!给建议,提供信息者有分
- Delphi中用ADO对象访问ORACLE出错?
- 请问用DBGrid控件怎么对数据库操作
- TObject是什么?
- 用XPmenu修饰SpeedButton 的问题!!!!!
- 文件操作:如何在文件中写入字符串?我这样做错在哪里?
- 使用trayicon,导致无法关机,注销和重启。
- 关于多线程问题,欢迎大家到英特尔多核专区讨论
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;
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;
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;