用户登录
用户注册

分享至

cchar转dword

  • 作者: 一阵风刮没了
  • 来源: 51数据库
  • 2020-04-21

1.char数组转成dword

一般来说,直接移位拼装即可。但是我理解,按照你的描述,貌似你的DWORD长度超过了cpu的寄存器的长度。如果是后者的话,不妨这样做:

struct _dword{

word lo; // 假设cpu寄存器长度16位,word长度16位

word hi;

};

struct _dword a;

char b[4] = {0x12, 0x34, 0x56, 0x78};

a.lo = b[0] & 0x00FF + (b[1] & 0x00FF) << 8; // “与”操作将字符转为16位word,移位拼装。

a.hi = b[2] & 0x00FF + (b[3] & 0x00FF) << 8;

大概就是这样的。除此之外,还需要考虑尾序的问题。

对于更高位数的操作,基本原理是一样的。

2.字符串和DWORD类型之间如何相互转换

再把 dword转为字符串的也发出来

void HashToString(char *strHash,SHA1 hash,int iSize) //hash转成字符串

{

uchar *p=(uchar *)&hash;

char tmp[3]={0};

for (int j=0;j{

sprintf(tmp,"%02X",(uchar)p[j]);

//OutputDebugString(tmp);

strcat(strHash,tmp);

}

//OutputDebugString(strHash);

}

转载请注明出处51数据库 » cchar转dword

软件
前端设计
程序设计
Java相关