精华内容
下载资源
问答
  • ip地址,二进制,十进制 IP地址是指互联网协议地址,IP地址是IP...IP地址通常用“点分十进制表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。 下面是 四公式 一组是 8位, 一共4组 1 1 1 1 1 1

    ip地址,二进制,十进制

    IP地址是指互联网协议地址,IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
    IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。
    下面是 四公式 一组是 8位, 一共4组

    1 1 1 1 1 1 1 1 —>255
    27 26 25 24 23 22 21 20
    128 64 32 16 8 4 2 1

    案例:十进制转化成二进制
    174.178.10.12
    10101110.10110010.00001010.00001100

    案例1:二进制转换成十进制
    00100100.10101010.11100000.00000110
    36.170.224.6
    案例2:二进制转换成十进制
    10100101.11000011.10101101.11110001
    165.195.173.241

    ip地址的组成 重点

    IP地址的组成
    网络部分(网络位):直接决定了可以分配的网络数 计算方法:2^网络号位数-2
    主机部分(主机位):则决定了网络中最大的主机数 计算方法:2^主机号位数-2
    网络地址:用来表示一个网络。主机位取值全部为0,例如:192.168.1.0 /24
    广播地址:用于在一个网络内一对所有的通信。主机部分全部换成1。
    子网掩码:用于区分IP地址中的网络部分和主机部分,子网掩码 在 网络位的 全部按 1
    默认网关:就是一个网络连接到另一个网络的“关口”,一般情况下网关的IP就是所在网络的路由器的IP

    1.写出下列各自的网络地址、广播地址、可用主机的范围以及数量、子网掩码点分十进制形式
    案例:
    192.168.153.117/23
    网络地址:192.168.152.0/23
    广播地址:192.168.153.255
    子网掩码:255.255.254.0
    可以用主机:2**9-2
    在这里插入图片描述
    案例:
    公式
    128 64 32 16 8 4 2 1

    10.89.176.14/22
    10.89 1011 00 00 0000 1110

    网络地址:10.89.176.0/22在网络位的按1算,主机位全部都按0

    广播地址:10.89.179.255 在网络位的按1算,主机位的变成1 128+32+16 + 主机位2+1 结果:10.89.179.255

    子网掩码:255.255.252.0 网络位按1算,主机位按0算
    第一种:把在网络位的全部按1 相加得出结果是 128+64+32+16+8+4=252 结果:255.255.252.0
    第二种:把在网络位的全部按1,先不管,把在主机位的按1换算,用总数255 -1+2=252 结果:255.255.252.0

    可以用主机:32-22 等于2**10-2 总进制32组
    在这里插入图片描述
    *

    企业案例一段网络,不够用,分成多个网段

    2.企业案例:某公司有三个部门(A、B、C),计算机的数量分别是20台、125台、28台;目前只有一个网络可用为172.168.12.0/24。请写出解决方案。
    重点: 主机位从后往前留 先解决计算机多的,然后再按照从小到大的来算
    先解决:B、部门 C部门 A、部门
    *
    公式
    128 64 32 16 8 4 2 1
    解决方案:B、部门 125台 2**7 128>125台
    172.168.12.0/24 要借一位,2的7次方,留7个主机

    172.168.12.0 000 0000 . 0【0 1 】有俩个数值,从小到大

    网络地址:172.168.12.0/25 解释:网络位不变,主机位变成 0 结果:172.168.12.0/25
    广播地址:172.168.12.127 解释; 网络位不变,按照1算,主机位变成1,64+32+16+8+4+2+1=127 结果:172.168.12.127
    子网掩码:255.255.225.128 网络位按1算,主机位按0算
    第一种:把在网络位的全部按1 相加 128
    第二种:把在网络位的全部按1,先不管,把在主机位的按1换算,用总数255 -主机位按1算的

    取值范围 172.168.12.1 到 172.168.12.127 第一个网络地址不能算,还有一个广播地址不能算,减去2

    解决方案:B、部门 28台 2**5-2>28台
    172.168.12.100 /27
    172.168.12 100 00000 【000 001 010 011 100 101 110 111 】 8中数值,0开头的备用,取10 最小的

    网络地址:172.168.12.128/26 解释:网络位不变,主机位变成 0 128 结果:172.168.12.128/26
    广播地址:172.168.12.159 解释; 网络位不变,按照1算,主机位变成1,128+16+8+4+2+1= 结果:172.168.12.159
    子网掩码:255.255.225.224 网络位按1算,主机位按0算
    第一种:把在网络位的全部按1 相加 128+64+32=224 结果:255.255.225.224
    第二种:把在网络位的全部按1,先不管,把在主机位的按1换算,用总数255 -主机位按1算的

    取值范围 172.168.12.129 到 172.168.12.158 第一个网络地址不能算,还有一个广播地址不能算,减去2

    解决方案:A、部门 20台2**5-2>28
    172.168.12.101 /27
    172.168.12 101 00000 【000 001 010 011 100 101 110 111 】 8中数值,0开头的备用,取101

    172.168.12 101 00000
    网络地址:172.168.12.160/27 解释:网络位不变,主机位变成 0

    广播地址:172.168.12.191 解释; 网络位不变,按照1算,主机位变成1

    子网掩码:255.255.225.224 网络位按1算,主机位按0算
    第一种:把在网络位的全部按1 相加 128+64+32=224 结果:255.255.225.224
    第二种:把在网络位的全部按1,先不管,把在主机位的按1换算,用总数255 -主机位按1算的

    取值范围 172.168.12.161 到 172.168.12.190

    展开全文
  • 1.把ip地址转化为用于网络传输的二进制数值 int inet_aton(const char *cp, struct in_addr *inp); inet_aton() 转换网络主机地址ip(如192.168.1.10)为二进制数值,并存储在struct in_addr结构中,即第二个参数*inp...

    1.把ip地址转化为用于网络传输的二进制数值

    int inet_aton(const char *cp, struct in_addr *inp);

    inet_aton() 转换网络主机地址ip(如192.168.1.10)为二进制数值,并存储在struct in_addr结构中,即第二个参数*inp,函数返回非0表示cp主机有地有效,返回0表示主机地址无效。(这个转换完后不能用于网络传输,还需要调用htons或htonl函数才能将主机字节顺序转化为网络字节顺序)

    in_addr_t inet_addr(const char *cp);

    inet_addr函数转换网络主机地址(如192.168.1.10)为网络字节序二进制值,如果参数char *cp无效,函数返回-1(INADDR_NONE),这个函数在处理地址为255.255.255.255时也返回-1,255.255.255.255是一个有效的地址,不过inet_addr无法处理;

    2.将网络传输的二进制数值转化为成点分十进制的ip地址

    char *inet_ntoa(struct in_addr in);

    inet_ntoa 函数转换网络字节排序的地址为标准的ASCII以点分开的地址,该函数返回指向点分开的字符串地址(如192.168.1.10)的指针,该字符串的空间为静态分配的,这意味着在第二次调用该函数时,上一次调用将会被重写(复盖),所以如果需要保存该串最后复制出来自己管理!

    我们如何输出一个点分十进制的IP呢?我们来看看下面的程序:

    #include <stdio.h>   
    #include <sys/socket.h>   
    #include <netinet/in.h>   
    #include <arpa/inet.h>   
    #include <string.h>   
    int main()   
    {   
    	struct in_addr addr1,addr2;   
    	ulong l1,l2;   
    	l1= inet_addr("192.168.0.74");   
    	l2 = inet_addr("211.100.21.179");   
    	memcpy(&addr1, &l1, 4);   
    	memcpy(&addr2, &l2, 4);   
    	printf("%s : %s\n", inet_ntoa(addr1), inet_ntoa(addr2)); //注意这一句的运行结果   
    	printf("%s\n", inet_ntoa(addr1));   
    	printf("%s\n", inet_ntoa(addr2));  
    	return 0;   
    }   
    

    实际运行结果如下: 
    192.168.0.74 : 192.168.0.74 //从这里可以看出,printf里的inet_ntoa只运行了一次。

    192.168.0.74

    211.100.21.179

    inet_ntoa返回一个char *,而这个char *的空间是在inet_ntoa里面静态分配的,所以inet_ntoa后面的调用会覆盖上一次的调用。第一句printf的结果只能说明在printf里面的可变参数的求值是从右到左的,仅此而已。

    3.新型网路地址转化函数inet_pton和inet_ntop

    这两个函数是随IPv6出现的函数,对于IPv4地址和IPv6地址都适用,函数中p和n分别代表表达(presentation)和数值(numeric)。地址的表达格式通常是ASCII字符串,数值格式则是存放到套接字地址结构的二进制值。

    #include <arpe/inet.h>
    int inet_pton(int family, const char *strptr, void *addrptr);     //将点分十进制的ip地址转化为用于网络传输的数值格式
            返回值:若成功则为1,若输入不是有效的表达式则为0,若出错则为-1
     
    const char * inet_ntop(int family, const void *addrptr, char *strptr, size_t len);     //将数值格式转化为点分十进制的ip地址格式
            返回值:若成功则为指向结构的指针,若出错则为NULL
    

    (1)这两个函数的family参数既可以是AF_INET(ipv4)也可以是AF_INET6(ipv6)。如果,以不被支持的地址族作为family参数,这两个函数都返回一个错误,并将errno置为EAFNOSUPPORT.
    (2)第一个函数尝试转换由strptr指针所指向的字符串,并通过addrptr指针存放二进制结果,若成功则返回值为1,否则如果所指定的family而言输入字符串不是有效的表达式格式,那么返回值为0.

    (3)inet_ntop进行相反的转换,从数值格式(addrptr)转换到表达式(strptr)。inet_ntop函数的strptr参数不可以是一个空指针。调用者必须为目标存储单元分配内存并指定其大小,调用成功时,这个指针就是该函数的返回值。len参数是目标存储单元的大小,以免该函数溢出其调用者的缓冲区。如果len太小,不足以容纳表达式结果,那么返回一个空指针,并置为errno为ENOSPC。

    4.示例

    inet_pton(AF_INET, ip, &foo.sin_addr);   //  代替 foo.sin_addr.addr=inet_addr(ip);
     
     
    char str[INET_ADDRSTRLEN];
    char *ptr = inet_ntop(AF_INET,&foo.sin_addr, str, sizeof(str));      // 代替 ptr = inet_ntoa(foo.sin_addr)
    
    展开全文
  • 47-点分十进制表示

    2021-10-25 09:55:56
    2.点分十进制(点分(点式)十进制表示法) 是IPv4的IP地址标识方法,IPv4用4个字节表示,一个IP地址每个字节按照十进制表示为0 ~ 255,点分十进制就是用4个从0 ~ 255的数字表示一个IP地址,如:192.168.1.1 ...

    2.点分十进制(点分(点式)十进制表示法)

    是IPv4的IP地址标识方法,IPv4用4个字节表示,一个IP地址每个字节按照十进制表示为0 ~ 255,点分十进制就是用4个从0 ~ 255的数字表示一个IP地址,如:192.168.1.1

    在这里插入图片描述

    展开全文
  • #include"csapp.h"/*本代码将点分十进制形式的ip地址转化为十六进制数并且输出*///返回一个字符串代表的整数intstr2int(char*str){//要注意变量的初始化intvalue=0;//字符串长度intlength=strlen(str);//基数intbase...

    #include "csapp.h"

    /*本代码将点分十进制形式的ip地址转化为十六进制数并且输出*/

    //返回一个字符串代表的整数

    int str2int(char *str)

    {

    //要注意变量的初始化

    int value=0;

    //字符串长度

    int length = strlen(str);

    //基数

    int base=1;

    while(--length!=0) {

    base*=10;

    }

    while(*str!='\0') {

    //用ascii码来计算

    int c = *str++;

    value = value + (c - 48) * base;

    base/=10;

    }

    return value;

    }

    //将十进制整数转化为16进制整数并以字符形式输出

    char base_10_to_base_16(int value)

    {

    if(value>=0&&value<=9)

    return (value+48);

    else if(value>=10&&value<=15)

    return (value-10+97);

    }

    //将16进制整数数组转化为字符串输出,调用上面的base_10_to_base_16函数

    char* int_to_string_of_base_16(int value[],int bit)

    {

    char* str = (char *)malloc(sizeof(char)*2*bit);

    char* copy_str = str;

    int i;

    for(i=0;i

    int bit_1 = value[i]/16;

    int bit_2 = value[i]%16;

    *str++ = base_10_to_base_16(bit_1);

    *str++ = base_10_to_base_16(bit_2);

    }

    return copy_str;

    }

    //主函数

    void main(int argc,char* argv[])

    {

    if(argc<2) {

    printf("input error!you should input like this:%s 172.20.4.163\n",argv[0]);

    exit(0);

    }

    //注意hex可能是4位或者是6位,动态变化

    char *hex=argv[1];

    //初始位数为1

    int bit_length = 1;

    while(*hex!='\0') {

    if(*hex++=='.')

    bit_length++;

    }

    int value[bit_length];

    //计数器

    int count = 0;

    int index = 0;

    char *s = argv[1];

    char *old = argv[1];

    char ch;

    while(*old!='\0') {

    if(*old++=='.') {

    s[count]='\0';

    value[index++] = str2int(s);

    s=old;

    count = 0;

    }

    else

    count++;

    if(*(old+1)=='\0')

    value[index++] = str2int(s);

    }

    //输出转换结果

    printf("0x%s\n",int_to_string_of_base_16(value,bit_length));

    exit(0);

    }

    展开全文
  • 地址范围从1.0.0.1到127.255.255.254 (二进制表示为:00000001 00000000 00000000 00000001 - 01111111 11111111 11111111 11111110)。最后一个是广播地址。 ​ B类IP地址B类IP地址就由2字节的网络地址和2...
  • P地址有两种表示方法:整数和点分十进制` 从下面的例子可以看出,整数1945097072和115.239.211.112表示的是同一个地址
  • 十六进制表示ip地址的时候两位一个停顿 c2 = 12 * 16 + 2 = 194 2f = 2 * 16 + 15 = 47 14 = 1 * 16 + 4 = 20 81 = 8 * 16 + 1 = 129 19.47.20.129 下面看好了,我这个才是正确的: A类网络的回答IP地址范围为1.0....
  • 给一个IP地址是点分十进制表示形式,转化为二进制数据以字符串的形式输出。 示例如下 /** * 点分十进制转化为二进制 * @param ip * @return */ private String tenTransFromTwo(String ip) { String[] ...
  • C语言将ip地址的二进制形式转化为十进制的形式01515rhbz2017.12.26浏览15次分享举报题目的意思是输入一个32位的二进制的数,每8位转化为一个十进制的书,将其转化为十进制ip地址。然后我写的代码是这样的#...
  • 整数形式转换成IP地址思路:将整数值进行右移位操作(>>>),右移24位,右移时高位补0,得到的数字即为第一段IP。ps:>>>是有符号整数右移运算符,>>是无符号整数右移运算符。通过与操作符(&...
  • 1.用途将一个整型数值和一个IP字符串相互转换...原理IP地址是一个以点作为分隔符的十进制四字段字符串,例如“10.0.3.193”。将这四个十进制数转化为二进制即为:每段数字 相对应的二进制数 10 00001010 0 00000000...
  • IP地址分类及进制转换 IP地址分类 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示...
  • /usr/bin/env python# -*- coding:utf-8 -*-ip = '192.168.0.1'# 转为二进制:# 方法一'''eve = ip.split('.')s = ''for i in eve:i = int(i)ejz = bin(i)s += ejz+','print(s[:-1])'''# 方法二'''eve = ip.split('.'...
  • 进制表示IP地址的方法通常都是四个八位组的二进制如“00000000 00000000 00000000 11111111” 每八个位一组,共四组,在现实生活中人的大脑不肯能记忆到这么多东西,所以人们通常采用点分十进制的方法来表示IP地址...
  • 计算机网络IPv4地址详解——二进制和十进制一、二进制和十进制关二、IPv4地址 一、二进制和十进制关 从上图(8位)我们可以看出一些特征: 二进制每进一位,十进制就乘二; 128之前的二进制数,第一位都是0; 128...
  • 本文介绍在java中IP地址转换十进制数及把10进制再转换成IP地址的方法及实例参考,晒出来和大家分享一下先看实例代码如下classip{privatestaticlongiptolong(stringstrip)//将127.0.0.1形式的ip地址转换成10进制整数...
  • IP地址与二进制之间的转换

    千次阅读 2021-06-27 13:07:47
    IP地址与二进制之间的转换在讨论如何进行IP地址与二进制之间的转换前, 有必要解释一下IP地址与二进制的概念IPIP协议是网络层的一个协议, 是能使连接到网上的所有计算机网络实现相互通信的一套规则, 目的是根据源主机...
  • 输入一个合法的二进制表示IP地址,请将其转换为十进制格式表示的IP地址输出(不考虑异常输入数据)。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬...
  • 3,十进制(Decimal Number) 表示(1010)10或1010D 4,十六进制(Hexadercimal Number) 表示(1012)16或1010H 二:二,八,十,十六进制转换表 ·二进制 八进制 十进制 十六进制 0 0 0 ...
  • BUPT 2012 计算机 ProblemD | 十六进制转十进制、getline(str)、getchar()
  • 计算机网络基础1. 数制介绍1.1 数制的基本概念1.2 计算机中常见的数制1.2.1 十进制(Decimal number)1.2.2 二进制1.2.3 十六进制1.3 数制转换1.3.1 二进制和十进制间的转换1.3.2 十、十六、二进制的转换1.4 分享...
  • void showIP(int x) { printf("%d",(x&0xff000000)>>24); putchar('.'); printf("%d",(x&0x00ff0000)>>16); putchar('.'); printf("%d",(x&0x0000ff00)>>8); putchar('.'); ...
  • 根据需要将任意32位二进制转换为IP地址。输入:11111111输出:255.0.0.0思路:将输入的二进制数以每8个为一个单位转化为十进制 。#include int bin_dec(int x, int n) //自定义函数将二进制数转换为10进制{if(n == 0...
  • 数制转换2.1 十进制转二进制2.2 进制数对应表2.3 常见八位二进制数三.IP地址的分类1.IP地址的组成2.IP地址的分类2.1 IP地址分为五类2.2 IP地址私有网络地址和公有网络地址四.子网划分1.网段组成2.IP地址和子网掩码''...
  • 计算机考试选择题

    2021-06-23 00:25:01
    [键入文字]计算机1....4.内存中的每个基本单元都有一个唯一的序号,我们称此序号为这个内存单元的_地址___。5.可以多次写入信息的光盘是_CD-RW___。6.在微型机中,一般有IDE、SCSI、并口和USB等I/O接口,I/O...
  • 2.进制一览2.1、二进制2.2、十进制2.3、八进制2.4、十六进制3.进制之间的转换方法4.进制之间的对应数值图1.表格图2.常见的八位二进制数三、IP地址的组成四、IP地址的分类及范围和掩码五、私有网络地址六、子网划分1....
  • IP 地址以 0 开头会降维成八进制

    万次阅读 2021-10-26 15:14:42
    数字以 0 开头会使得 IP 地址的 点分十进制 变成 点分八进制
  • 下面分享一个可将十六进制地址转为十进制地址显示的代码,需要注意的是,需要在文件头包含sstream与string。 #include <iostream> #include <sstream> #include <string> using namespace std; ...
  • 为了便于记忆,我们将8个二进制位用一个十进制表示,一个IP地址由四个十进制表示,上述的IP地址表示为: 255.255.255.0 现在给你一个上述形式的IP地址,请回答IP地址的32个二进制位中,有多少位是1。 如IP地址为...
  • 管理几台到一百台计算机B.以一个单位或一个部门为限C.实现小范围内的数据资源共享D.涉及一个城市,一个国家乃至全世界2.计算机网络成员交换数据必须遵守的规则称作(C)。A.通信B.通道C.协议D...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,114
精华内容 30,045
关键字:

十进制表示ip地址