ip转换成十进制的问题(100)

  • 主题发起人 主题发起人 kunwyf12345
  • 开始时间 开始时间
K

kunwyf12345

Unregistered / Unconfirmed
GUEST, unregistred user!
我将ip192.168.1.203用inet_addr转换,iplong=inet_addr(pchar('192.168.1.203'));如果iplong为ulong或dword,返回的值为3405883584,c++例子中'192.168.1.203'的网络值定义为dword,值却是3232235979,我用(203 shl 24)+(1 shl 16)+(168 shl 8)+192却报错constant expression violates subrange bounds ,请问是我的iplong定义的范围不对吗?还是为什么怎么跟c++里的结果不一样?
 
字节顺序的问题吧。
 
没明白,那这意思我得3405883584是对的?
 
3405883584转成二进制:11001011 00000001 10101000 11000000203转成二进制:110010111转成二进制:00000001168转成二进制:10101000192转成二进制:110000003232235979转成二进制:11000000 10101000 00000001 11001011可以看出,在D下的结果是203 1 168 192,在c++下是192 168 1 203,顺序是相反的。
 
明白了,呵呵,谢谢
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
724
import
I
I
回复
0
查看
935
import
I
I
回复
0
查看
677
import
I
后退
顶部