是否有函数能将一个字符串切分为32bit的块?(急)

blueflame 2002-03-13 11:29:50
比如,我想将“待加密”这个字符串(3*2*8-bit)切为32bit的块,该如何实现?
...全文
36 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
neccui 2002-03-15
  • 打赏
  • 举报
回复
或者用 unsigned __int32 windows
uint32_t UNIX
NowCan 2002-03-15
  • 打赏
  • 举报
回复
DWORD 就是unsigned long
blueflame 2002-03-15
  • 打赏
  • 举报
回复
我不清楚DWORD是怎么用的,能贴个完整的例程吗?谢谢!
NowCan 2002-03-13
  • 打赏
  • 举报
回复
char *p=“待加密”;
DWORD i=(DOWRD)(*(DOWRD *)p);
DWORD j=(DOWRD)(*(((DWORD *)p)+1));

这个没试过。
twist 2002-03-13
  • 打赏
  • 举报
回复
定义一个指针指向字符串,再加32?

有必要再把内容拷贝到另一个指针处。

cct8 2002-03-13
  • 打赏
  • 举报
回复
完整的:

//假设你的字符串叫 str.

int len = strlen(str) / 4;

DWORD * p = (DWORD*)str;
DWORD *dst= new DWORD [len];
// check dst
for(int i=0;i<len;i++)
{
// 如果要调整字节顺序
// DWORD temp = *p++;
// dst[i] = htonl(temp);
// 否则直接用下面这一行:
dst[i] = *p++;
}

如果你的字符串除4有余,你自己想办法吧,比如补0
cssnow 2002-03-13
  • 打赏
  • 举报
回复
struct FourByte
{
unsigned char byte1;
unsigned char byte2;
unsigned char byte3;
unsigned char byte4;
} *p;

char *src="............";
p = (struct FourByte *)src;

...
p ++;
........

leizhengdeng 2002-03-13
  • 打赏
  • 举报
回复
有点漏洞,就是如果字符串不是32bit整数倍时有问题
比如字符串是48bit,那么最后一个32bit的块前面的16位是字符串中,后面的16位怎么办?如果是40位呢?
比如
11111111 00000000
11111111

如何区别?
ygd 2002-03-13
  • 打赏
  • 举报
回复
试试 NowCan(能量、激情、雨水、彩虹——雷雨云) ( ) 的方法

69,357

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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