一个字节转换的问题?

Sylix 2004-01-14 11:45:52
一个高4字节的整形及一个低4字节的整形,
怎么转换为一个八字节的整形?
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrdsheng 2004-01-16
  • 打赏
  • 举报
回复
long hi=xx,lo=xx;
long result;
hi=hi&0xFFFFFFFF00000000;//屏蔽低4字节
lo=lo&0x00000000FFFFFFFF;;//屏蔽高4字节
result=hi|lo;
是这个意思吧
chillman 2004-01-16
  • 打赏
  • 举报
回复
直接定义一个 long

移位 或 指针 操作。
zhangfjj 2004-01-15
  • 打赏
  • 举报
回复
如果有八字节的整型数的话
定义一个八字节的数a
将高四字节的数按位移入a的高四字节,低四字节的所有位都置0
再与低四字节的相加,
这样可不可以??
zhangfjj 2004-01-15
  • 打赏
  • 举报
回复
看到你就这个问题发个一个贴子,你应该把你的要求说清楚些。
我只能说用位操作试试看。
Sylix 2004-01-15
  • 打赏
  • 举报
回复
thanks,
是32位系统
Zark 2004-01-15
  • 打赏
  • 举报
回复
如果你讨论的是64位系统,我不清楚.

如果你讨论的是32位系统,那么没有8字节的整形,整形量就是4字节.

如果你讨论的是32位系统的_int64这个数据类型,实际上它相当于
typedef struct any
{
DWORD dwHigh;
DWORD dwLow;
}_int64;
所以可以
__int64 nLarge;
__int32 nHigh=0x1000;
__int32 nLow=0x1010;

int *ptr=(int*)&nLarge;
*ptr=0x100;
p++;
*ptr=0x101;

最后nLarge为0x0000100000001010;

dengsf 2004-01-15
  • 打赏
  • 举报
回复
首先你要有一个能放 8 个字节的东西啊,
C标准里的基本类型好象没有 8 字节的……
xzygod 2004-01-15
  • 打赏
  • 举报
回复
高4位 << 16 + 低四位

69,382

社区成员

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

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