熟悉Delphi和VC的朋友帮忙看看

lmpeel 2006-08-15 09:48:45
能否帮我将以下代码用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 ,前面一步运算出来不是整型就不能再作位运算了。
...全文
76 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmpeel 2006-08-16
  • 打赏
  • 举报
回复
*point 取出来的是该地址的整数吧?
vc 的 / 运算应用于整数时是不是取整除?

lmpeel 2006-08-16
  • 打赏
  • 举报
回复
就是啊,代码是别人写的,这是一段写卡的程序,又没有具体算法的文档,只能根据这些代码来改写
支持中文哦 2006-08-15
  • 打赏
  • 举报
回复
老大,代码可读性高点行不?
代码是给人看的,通俗的代码机器无所谓,现在速度都那么快了,首要考虑效率问题已经不是那么重要的了。
herman~~ 2006-08-15
  • 打赏
  • 举报
回复
关注
lmpeel 2006-08-15
  • 打赏
  • 举报
回复
不熟悉vc,
(*Point)/0x100 一个Int型的数除以 0x100不是有可能出小数吗?

另外
一个Int 类型的数 与 0x00F0 做 & 运算结果不就是0x00F0?, 如果不是应该是什么?
Int 是32位还是16位?
一条晚起的虫 2006-08-15
  • 打赏
  • 举报
回复
前面一步运算出来不是整型就不能再作位运算了//哪步会出非整形的变量?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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