ip地址什么时候要用16位char数组存放

来源:互联网 发布:java键盘监听松开按键 编辑:程序博客网 时间:2024/05/16 01:23


ip地址实际上是用32bit的二进制数来表示的,

比如11010011 1000101 11000110 11011111,用点分十进制表示就是我们熟悉的211.69.198.223。

如果要把“211.69.198.223”存放到char数组中时,很自然地觉得,一个char表示8位,32位IP地址用4个char就行了(因为IP地址是0~255,所以如果用4个char来表示,应该使用的是unsigned char)。但是这给打印带来了不便,如果把这4个char打印出来,输出的不是点分十进制的IP地址,而是4个拓展ansii字符。因此一般是用16位的char(signed char即可)来存放ip,一个char存放一个数字或点分隔符(“.”),最后是字符串的null终止符。比如:

211.69.198.223存放起来就是

255.255.255.255存放起来就是



当然,上面讲的是需要将ip地址打印出来的情况下,用16位char数组来存放ip地址。如果不需要打印,那么用4个unsigned char来存放ip地址完全没问题

 

至于IPv6地址,是128bit,通常写成8组,每组4个16位进制数,例如2001:250:4000:8039:a51b:6fc1:2d97:fe14,一个16进制数4bit(0~f对应0000~1111),16*4*8=128bit

0 0
原创粉丝点击