一文彻底看懂十进制IP\主机IP\网络IP的三个IP字节转换

本文介绍了字节存储顺序、IP地址表示形式以及网络字节顺序,详细讲解了点分十进制IP与网络字节顺序IP之间的转换,并提供了C语言中主机字节序与网络字节序转换的函数使用示例。
摘要由CSDN通过智能技术生成

本文操作的使用软件是VS2010。采用语言是C语言。

1.字节存储顺序

多字节数据的各字节在微机中的存放顺序有小端(Little Endian)和大端(Big Endian)之分。Intel体系芯片使用小端,IBM的Power PC使用大端。

例如,将0x12345678写入到1000h开始的内存中,结果如图。 

地址

小端方式

大端方式

1000h

78H

12H

1001h

56H

34H

1002h

34H

56H

1003h

12H

78H

 测试实例,可以判断自己主机的字节存储顺序。执行结果如下图

#include "stdio.h"
void main(void)
{
  int i,*pi;
  i=0x12345678;
  pi=&i;
  printf("pi=%X,*pi=%X\n",pi,*pi);

  char *pc=(char*)pi;
  printf("%X %X %X %X\n",*pc,*(pc+1),*(pc+2),*(pc+3));  
}
字节存储顺序实例运行结果
字节存储顺序实例运行结果

 2.IP地址的表示形式

对于网络管理员或普通用户而言,IP地址常用点分法来表示。例如192.168.0.1。

在计算机中使用无符号长整数(unsigned long)来存储和表示IP地址,而且分为网络字节顺序(NBO,Network Byte Order)和主机字节顺序(HBO,Host Byte Order)两种格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值