type
TIPAddress = array[0..3] of byte; //[0] 192 [1] 168 [2] 0 [3] 50
function IptoDWord(ip: TIPAddress): DWord;
begin
result := ip[0] shl 24 + ip[1] shl 16 + ip[2] shl 8 + ip[3];
end;阅读一个协议接口代码,有一个函数不知道啥意思,问了问写代码的人,它就发了这个代码,有朋友帮忙转成C吗?
谢谢!
TIPAddress = array[0..3] of byte; //[0] 192 [1] 168 [2] 0 [3] 50
function IptoDWord(ip: TIPAddress): DWord;
begin
result := ip[0] shl 24 + ip[1] shl 16 + ip[2] shl 8 + ip[3];
end;阅读一个协议接口代码,有一个函数不知道啥意思,问了问写代码的人,它就发了这个代码,有朋友帮忙转成C吗?
谢谢!
解决方案 »
- FastReport4的二个问题(自动缩放和报表合并)
- tquery调用数据库要求输入密码,不知道怎样和解决?急
- 求sqlserver迷你版的制作方法.高手进来看看.
- RZRichEdit中为什么有时候会出现乱码?
- 请问这个功能怎样实现?(初学数据库编程)
- 怎样获得开发经验了,各位有经验的朋友进来看看,高分回报,谢谢指教!
- 在BDE中如何創建和使用臨時表?--連接MS SQL server
- 提问:图片显示老生常谈
- 请问这里有没有做柜台的?
- 在重写TDBMemo控件时应如何写onexit过程
- 封装带界面DLL,出现程序图标不能正常显示问题,听说是窗口句柄的原因,不知道如何处理
- delphi Tsampledataset 问题 数据库
为了增加可移植性,避免受cpu的endian的影响,按照winsock的约定,应该使用 htonl(host to net long)和 ntohl(net to host long)这两个api对 DWORD 字节序进行本地和网络间的转换
想了解endian的话可以搜索 little-endian 和 big-endian,在x86 cpu都是little-endian的
{
return (ip[0] < < 24) + (ip[1] < < 16) + (ip[2] < < 8) + ip[3];
} int main(void)
{
char ip[4] = { 192, 168, 1, 2 };
unsigned int n; n = IpToDword(ip); //......
}
PS:xiaocha难得又跑到这帮我引一下,那我再边再给点分吧.