精华内容
下载资源
问答
  • 课程题目,将任意的IP地址转化为二进制数,还可以判断地址是否合法。
  • IP地址二进制之间的转换在讨论如何进行IP地址二进制之间的转换前, 有必要解释一下IP地址二进制的概念IPIP协议是网络层的一个协议, 是能使连接到网上的所有计算机网络实现相互通信的一套规则, 目的是根据源主机...

    IP地址与二进制之间的转换

    在讨论如何进行IP地址与二进制之间的转换前, 有必要解释一下IP地址与二进制的概念

    IP

    IP协议是网络层的一个协议, 是能使连接到网上的所有计算机网络实现相互通信的一套规则, 目的是根据源主机和目的主机的地址来传送数据.

    IP地址是一组能够识别主机和所在网络的编号, 由32位二进制数组成(等于4字节),为便于使用,常以XXX.XXX.XXX.XXX形式表现,每组XXX代表小于或等于255的10进制数。

    每个IP地址(尽管它看起来分为四部分)被分解成两个部分......但这些部分并不相同。部分IP地址用于“网络ID”,其余地址用于“主机ID”.网络ID可以定位你所在的某个特定网络, 而主机ID可以定位你所在网络正在使用的主机

    大多数IP地址可以划分地址类别:

    A类地址:IP地址的前8位用于网络ID。最终的24位用于主机ID.(192.168.16.10)

    B类地址:IP地址的前16位用于网络ID。最后的16位用于主机ID.(192.168.16.10)

    C类地址:IP地址的前24位用于网络ID。最后的8位用于主机ID.(192.168.16.10)

    Ps:网络ID永远在主机ID之前

    二进制

    我们通常生活中的数学计算都是以十进制为基础的, 任何一个数字都可以用个(1), 十(10), 百(100), 千(1000), 万(10000)…这样的数位相加而成

    1460000013911033?w=575&h=111

    例如5349这个数可以用十进制表示为:

    5349 =

    5 * 1000 +

    3 * 100 +

    4 * 10 +

    9 * 1

    而二进制数顾名思义,就是以二进制为基础的数, 用0和1两个数来表示, 同样我们可以用二进制来表示任何一个数字

    1460000013911034?w=601&h=99

    例如216这个数

    216 =

    1 * 128 +

    1 * 64 +

    0 * 32 +

    1 * 16 +

    1 * 8 +

    0 * 4 +

    0 * 2 +

    0 * 1

    提取乘号之前的数字我们得到所代表的二进制数: 11011000

    又比如8这个数字

    8 =

    1 * 8 +

    0 * 4 +

    0 * 2 +

    0 * 1

    得到转换后的二进制数: 1000

    转换过程

    通过上面的分析, 我们可以了解到IP地址与二进制之间的转换其实就是十进制与二进制之间的转换

    IP地址可以表示成这种32位二进制形式

    11000000, 10101000, 00111011, 00011000

    也可以是4位十进制形式:

    192.168.59.24

    二进制转换为十进制

    1460000013911035?w=577&h=123

    ​ 我们以11000000这个数为例, 根据上图,将1,0依次代入所在数位, 然后相加所在数位数字:

    ​1 * 128 +

    1 * 64 +

    0 * 32 +

    0 * 16 +

    0 * 8 +

    0 * 4 +

    0 * 2 +

    0 * 1 = 192

    ​ 192就是11000000的十进制形式

    十进制转换为二进制

    参考本文二进制部分,同理, 附一张例子图片

    1460000013911036?w=1125&h=369

    展开全文
  • 今天有个朋友问了个问题,看到IP地址转二进制,顺便复习了一下,没想到发现了诀窍 首先要搞清楚IP地址的区间是0到255,共分为a,b,c,d,e五个区间, A 0-127 B 128-191 C 192-223 D 224-239 E 240-255 IP最大的...

    今天有个朋友问了个问题,看到IP地址转二进制,顺便复习了一下,没想到发现了诀窍

    首先要搞清楚IP地址的区间是0到255,共分为a,b,c,d,e五个区间,

    A    0-127

    B    128-191

    C    192-223

    D    224-239

    E    240-255

    IP最大的数是255

    每个IP由四组八位的二进制组成,从左往右起分别是2的(n-1)次方,所以随便拿一个256以内的数度给你化为二进制,都可以分解为权值相问加。对应的权值的位值为1,其他位为0即可。

    IP是八位,

    键值从左到右                           1,      2,      3,     4,      5,      6,        7,      8

    幂值从左到右也就是 2的          7,     6,      5,      4,      3,      2,       1,      0 次方

    次方值从左往右是:2^n-1 :128,     64,      32,      16,        8,         4,         2,        1

    例如:IP:192.168.80.71 转换成二进制

    192 = 128 + 64       =  2^7 + 2^6   ,所以得知第一位和第二位上面有值,其他位上没有值,转换成二进制就是                    11000000

    168 = 128 + 32 + 8 =  2^7 + 2^5 + 2^3  ,所以得知7对应的第一位,5对应的第三位,3对应的第五位有值,其他位为0,10101000

    80   = 64 + 16         =  2^6 + 2^4 , 所以得知6对应的第二位,4对应的第四位有值,其他为0,二进制为                              01010000

    71 = 64 + 4 + 2 + 1 = 2^6 + 2^2 + 2^1 + 2^0 ,分别是6对应的第2位,2->第6,1-->7,0-->8位上有值,所以二进制为         01000111

     

    延伸

    利用上面的计算下1000的二进制

    已知2^10 = 1024,   1000小于1024,所以突破口是2的9次方

    2^9 = 512

    2^8 = 256

    2^7 = 128

    2^6 = 64

    2^5 = 32

    2^3 = 8

    2^0 = 1

    512 + 256 + 128 + 64 + 32 + 8 + 1 = 1001

    所以1001的二进制为 9、8、7、6、5、3、0位上有值,为1,其他位上为0,套公式位2^(n-1) 得知 n = 9+1 = 10,所以,1001的二进制一共有十位,二进制为:1111101001

     

    二进制转换成十进制:

     

    二进制:        1         1        1         1        1        0         1        0         0          1

    对应幂值:     9         8         7        6         5        4        3         2        1          0

    2的次方:       2^9    2^8     2^7   2^6      2^5               2^3                          2^0

    次方值:         512 + 256  + 128 + 64 + 32 +      0      + 8      +  0   +  0   +    1  = 1001

     

     

     

     

    展开全文
  • IP地址的点分进制格式通过将32从低位到高位(右到左)一次分组八位,总共分4次,任何8位二进制数对应的进制数都是IP地址的有效部分。 C语言实现代码: /* 问题描述: 假设正在读取表示IP地址的字节流,任务是...

    问题描述:
    假设需要编写一个程序,实现32位二进制IP地址(32个字符长的1和0)转换为点分十进制格式并输出。IP地址的点分十进制格式通过将32位从低位到高位(右到左)一次分组八位,总共分4次,任何8位二进制数对应的十进制数都是IP地址的有效部分。

    C语言实现代码:

    /*
    问题描述:
    假设正在读取表示IP地址的字节流,任务是将32个字符长的1和0(位)序列转换为点分十进制格式,IP地址的点分十进制
    格式是通过将32位字节流一次分组8位,并将二进制表示转换为十进制表示形式 
    */
    #include <stdio.h>
    #include <string.h>
    #define base 2
    int main(void)
    {
     int n;
     printf("请输入需要将32位二进制IP地址转化为点分十进制格式的数量:");
     scanf("%d",&n);
     for(int i=0;i<n;i++)
     {
      char s[40];
      int sum=0,flag=0;//flag为控制分隔符"."的输出 
      scanf("%s",s);
      for(int j=0;j<strlen(s);j++)
      {
       sum=sum*base+s[j]-'0';//此处是重点,每8位二进制数转换为十进制数
       if(j%8==7)//当j=7,15,23,31时开始输出 
       {
        if(flag)
        {
         printf(".");//输出第一个八位二进制对应的十进制数时,不输出"."
        }
        printf("%d",sum);
        sum=0;//sum置零,运算第二个八位二进制对应的十进制数 
        flag=1;//从第二个开始输出"." 
       }
      }
      printf("\n");
     }
     return 0;
    }

    输出结果:
    在这里插入图片描述

    展开全文
  • 每个IP有4组8位二进制组成,8位二进制从左边算起的第1是2的7次方=128; 第2是2的6次方=64;第3是2的5次方=32; 第4是2的4次方=16;第5是2的3次方=8; 第6是2的2次方=4;第7是2的1次方=2; 第8是...

    每个IP有4组8位二进制组成,8位二进制从左边算起的第1位是2的7次方=128;

    第2位是2的6次方=64;第3位是2的5次方=32;

    第4位是2的4次方=16;第5位是2的3次方=8;

    第6位是2的2次方=4;第7位是2的1次方=2;

    第8位是2的0次方=1。

    以11000000.10101000.01010000.01000110为例来说明:
    11000000=128*1+64*1=19210101000=128*1+32*1+8*1=16801010000=64*1+16*1=8001000110=64*1+4*1+2*1=70;

     


    其他二进位部分是0的可以忽略,最后可以得出此IP地址的十进制为192.168.80.70。

    转载于:https://www.cnblogs.com/zxqblogrecord/p/9978205.html

    展开全文
  • 需要把ip地址转换为10进制数,然后也可以把10进制数转化为ip地址,计算机ping这个进制数可以ping通对应的ip地址,说明已经实现功能 代码如下 # 引用正则来三等分字符串 import re # 转换成二进制数 bi = "{0:b}"....
  • IP地址二进制进制转换

    千次阅读 2013-03-15 21:58:41
    在网络中经常会遇到IP地址化分子网等操作,我们经常要将IP地址进行二进制进制相互转换。如按照原先的严密的数学算法来计算非常麻烦。但在IP转换中我们可以找到一些规律,下面我来简单说明一下经常使用的一个IP...
  • //以IP地址形式输出//此题意在分转换,每八位为一段#include &lt;stdio.h&gt;int bin_to_dec(int i) //将位置二进制字符转换为进制数{ int sum = 1; int j; for(j = 0; j &lt; i; j ++) { ...
  • 二进制转进制的ip地址形式

    千次阅读 2015-01-23 15:54:06
    *把二进制的流转换为进制的IP地址 * 比如111111111111 255.255.255.0 */ #include #include //函数参数:x代表进制 。N代表层数 int bin_ToDec(int x,int n) { if(n == 0) //递归结束条件 { return 1; }...
  • 易语言使用IP地址和子网号计算网段和广播地址含二进制十进制数互源码,十进制到二进制文本,二进制与,二进制文本到十进制数,十进制IP到二进制IP,二进制IP到十进制IP,二进制IP与,计算IP地址的网段,计算IP地址的...
  • import java.util.Scanner; public class Review {...// 二进制转换成进制 c[i] /= 10; } if(i!=3) System.out.print(b[i]+"."); else System.out.print(b[i]); } input.close(); } }  
  • C语言将ip地址二进制形式转化为进制的形式01515rhbz2017.12.26浏览15次分享举报题目的意思是输入一个32二进制的数,每8转化为一个进制的书,将其转化为进制的ip地址。然后我写的代码是这样的#...
  • 什么IP地址,什么子网掩码,什么网路地址,什么广播地址都会用到二进制进制的相互转化,而且最常用的是8位二进制数一组的转化,这就来总结相互转化最快的方法。  首先来认识标准分类的IP地址:  IP地址是由...
  • #!/usr/bin/env python3 # -*- coding: UTF-8 -*- def iTob(ip): ... list_ip = ip.split('.') ... bin_ip = [] ... # 将进制转为二进制并去除'0b'标识符 temp_ip = bin(int(i)).lstrip('0b...
  • IP地址的点分进制格式是一次将8分组,然后将二进制表示形式转换为进制表示形式。 任何8都是IP地址的有效部分。 要将二进制数转换为进制数,请记住两个都是位置数字系统,其中二进制系统的前8个位置是: ...
  • 根据需要将任意32位二进制转换为IP地址。 输入:11111111 输出:255.0.0.0 思路:将输入的二进制数以每8个为一个单位转化为进制 。 #include &lt;stdio.h&gt; int bin_dec(int x, int n) //自定义...
  • 进制点分IP转换为32位二进制IP

    万次阅读 2017-04-09 08:45:56
    进制点分IP转换为32位二进制IP#include using namespace std; int main() { char ch[33]; char s[100],*p; int a[4],n,l=0,i; // while(1) // { // cout请输入进制点分式IP"; cin.getline(s,99); p=s; ...
  • 这四段每一段都是 占 8个二进制位,这8个二进制位 最大的数字合在一起,就是255。 人为的将 IP 分为了,网络分制 和 地址分制 IP地址的分类 分类规则 下面说一下 分类的规则 二进制 最高进制的第一个数字为0 ...
  • 编写程序,将进制点分的IP转换为32位二进制IP地址。程序要能验证输入的进制点分IP地址的合法性。用户输入的IP不和法时,输出"data error"。 请使用模块化程序设计的思想,将功能模块编写成函数。通过指针...
  • System.out.println("IP地址转2进制" ); 14 String[] array = a.split("\\." ); 15 /* for ( int i=0; i ; i++) { 16 System.out.println(array[i]); 17 } */ 18 int [] intTemp = new int ...
  • 各进制之间转换: 1 # 转二进制用bin(int(x,n)) #用几进制转换n就是几 2 # 八进制用oct(int(x,n)) #x位置放现有进制字符串 ...进制转二进制IP: 1 def convert(n): 2 a = n.split(".")...
  • 2,二进制(B):逢二进一 3,十六进制(H):逢十六进一 数制的转换 1,进制的转换:使用除2取余法 例如:将进制125转换为二进制 2,,十六,二进制的转换 进制十六进制用的也是取余数方法 二进制 进制 ...
  • 编写程序,将进制点分的IP转换为32位二进制IP地址。程序要能验证输入的进制点分IP地址的合法性。用户输入的IP不和法时,输出"data error"。 请使用模块化程序设计的思想,将功能模块编写成函数。通过指针...
  • 数制转换2.1 进制转二进制2.2 进制数对应表2.3 常见八位二进制数三.IP地址的分类1.IP地址的组成2.IP地址的分类2.1 IP地址分为五类2.2 IP地址私有网络地址和公有网络地址四.子网划分1.网段组成2.IP地址和子网掩码''...
  • 下面说一下ip地址怎么整型的。 php语法   echo ip2long("220.181.1.2"); // 输出结果:-592117502 以上出现了负数,原因是ip地址较大,这里可以将其成无符号格式。   echo sprintf("%u...
  • ​ A类IP地址 A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高必须 是“0”。地址范围从1.0.0.1到127.255.255.254 (二进制表示为:00000001 00000000 00000000 00000001 - 01111111 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,890
精华内容 23,956
关键字:

二进制转十位ip地址