问个简单的算法问题

xw995 2005-04-14 09:20:52
问大家一个问题,比如:有一个char port[2]={31,64},对应的8000,有什么函数可以解释成8000吗?或者有什么优化的算法吗?
31对应16进制的1F,64对应16进制的40,0x1F40对应10进制的8000
请大家赐教!谢谢!
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
virtualfunction 2005-04-14
  • 打赏
  • 举报
回复
下列两方法是一样的:
1、WORD i=MAKEWORD(hiword,loword);
2、WORD i=port[0] | port[1] << 8;
vcmute 2005-04-14
  • 打赏
  • 举报
回复
WORD i=MAKEWORD(port[1],port[0]);
晨星 2005-04-14
  • 打赏
  • 举报
回复
通用代码:
#include <winsock2.h>
#pragma comment(lib, "ws2_32")

....
short s = htons(*(short*)port);
vcmute 2005-04-14
  • 打赏
  • 举报
回复
WORD i=ntohs(*(LPWORD)port);
P.S.也可自己写ntohs,就是两个位交换
晨星 2005-04-14
  • 打赏
  • 举报
回复
Intel X86系列等small-endian CPU:
short s = port[0] | port[1] << 8;

Sun Sparc系列等big-endianCPU:
short s = port[1] | port[0] << 8;

16,551

社区成员

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

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

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