javascript 如何实现为字符串做XOR校验,并在字符末尾添加两字节的校验?(愿赠300分)

coolstar 2002-12-09 10:20:46
例如

根据 abcd12345 计算所有字节的异或(两字节) ,xor校验的结果高4位的ASCII码
在前?

C代码如下:

/*******************************************************************************
函数名: AddXORCheck
功能: 为字符串做XOR校验并添加到字符末尾
输入参数: cmd
输出参数: cmd 完成校验后在字符末尾添加两字节的校验结果码
返回值: none
*******************************************************************************/
void AddXORCheck(char *cmd, int nlength)
{
unsigned char result = 0;
int nlen = nlength;
for(int i=0; i<nlen; i++)
result = result^cmd[i];

char check[3];
ASCIIChar2Hex(result, check);
check[2] = 0;

strcat(cmd, check);
}
// 将ASCII字符(1个字符)转换成十六进制格式字符(2个字符)
// hexch 是两个字符的数组
char *ASCIIChar2Hex(unsigned char ch, char *hexch)
{
hexch[0] = HEXCHAR[ch/16];
hexch[1] = HEXCHAR[ch%16];

return hexch;
}


哪位高手可以转换一下?
...全文
281 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolstar 2002-12-12
  • 打赏
  • 举报
回复
谢谢 wsj(骆驼)

由于javascript的先天性决定了很多东西很难实现,所以我们决定还是放在用VC写的组件里了,也就是说继续使用原来的C代码
wsj 2002-12-10
  • 打赏
  • 举报
回复
我不懂C没法给你写代码
上面的代码,不足以帮助你完成吗?
coolstar 2002-12-10
  • 打赏
  • 举报
回复
问题还未解决,继续等待
wsj 2002-12-09
  • 打赏
  • 举报
回复
:0 难看,再贴一次

if (nSrcVal < -2 || nSrcVal > 16777215)
vtDestVal = Eon.mapCustColor(nSrcVal, bFlag);
else
{
var nBlue = (nSrcVal >> 16) & 0xff;
var nGreen = (nSrcVal >> 8) & 0xff;
var nRed = nSrcVal & 0xff;
var nDestVal = (nRed << 16) + (nGreen << 8) + nBlue;
var strDestVal = nDestVal.toString(16);
while (strDestVal.length < 6)
strDestVal = "0" + strDestVal;
vtDestVal = "#" + strDestVal;
}
wsj 2002-12-09
  • 打赏
  • 举报
回复
//参考以下代码:
//long颜色to RGB:


if (nSrcVal < -2 || nSrcVal > 16777215)
vtDestVal = Eon.mapCustColor(nSrcVal, bFlag);
else
{
var nBlue = (nSrcVal >> 16) & 0xff;
var nGreen = (nSrcVal >> 8) & 0xff;
var nRed = nSrcVal & 0xff;
var nDestVal = (nRed << 16) + (nGreen << 8) + nBlue;
var strDestVal = nDestVal.toString(16);
while (strDestVal.length < 6)
strDestVal = "0" + strDestVal;
vtDestVal = "#" + strDestVal;
}
coolstar 2002-12-09
  • 打赏
  • 举报
回复
我试试看用vbs是否可以达到要求
harryyang 2002-12-09
  • 打赏
  • 举报
回复
據我所知:
1.JS不能取子節,也就是沒有提供對子節的操作.如那位仁兄
知道.往告知
2.VBS可以對子節操作,而且函數豐富.你可以查一下!

87,942

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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