00100000的十进制是多少
接下来具体说说
简单说 IP 地址是由32位二进制数组成的一串编码。但是因为32位二进制不好记忆,我们经常会用点分十进制方式来表示 IP 地址,也就是每八位二进制为一组,将其转换成成十进制,中间用点隔开。比如 11000000 10101000 00100000 00001010 转换为点分十进制为 192.168.32.10 ;
IP 地址是用来做网络寻址用的。互联网上的每台设备都有一个唯一的 IP ,相当于你家的门牌号。当一台设备想和互联网上另外一台设备通信时,便是通过 IP 地址找到对方设备。更多的 IP 地址相关知识不在这里做过多的介绍,不是本文重点。
要想说明 0.0.0.0 这个 IP 地址代表的含义,需要从两个方面来说明。
当在自己电脑上配置IP地址为 0.0.0.0 的时候,表示这台机器在网络上是不可达的。比如你的笔记本电脑在没有联网的时候, IP 地址很可能是用 0.0.0.0 来标识,表示本机没有分配到一个可用的 IP 地址。除此之外, 0.0.0.0 也经常用于在防火墙或者路由设备上设置网络策略时表示任何网络地址。
除了在硬件设备上,在提供网络服务的软件配置文件中,也经常见到binding的 IP 地址为 0.0.0.0 。比如 Redis 服务binding的地址, Tomcat 服务bind的地址。当在应用程序配置文件中配置的binding地址为 0.0.0.0 的时候表示可以监听该服务器上所有网卡过来的信息。
很多服务器都是有双网卡的,比如其中一个网卡的 IP 地址为 192.168.32.10 ,另一块网卡的 IP 地址是 192.168.45.30 。如果配置成 0.0.0.0 表示无论你从哪个 IP 地址访问这个服务都是 OK 的,甚至通过 127.0.0.1 这个环回地址来访问也是OK的。
相反如果在配置文件中,配置的 IP 是一个具体的 IP ,那么只能通过具体 IP 来访问,通过其他 IP 没办法访问。比如你配置的是 127.0.0.1 或者 192.168.32.10 ,那么通过 192.168.45.30 ,就访问不到对应的服务。
127.0.0.1 也被称为环回地址,所谓的环回地址是指,该地址只能被本机访问,并且发往 127.0.0.1 的数据报不经过物理层和链路层。直接经过网络层,传输层到应用层。
二进制
对于任何已知类型的传统计算机而言,均以1和0作为编码形式进行程序计算。
在电路结构中,高电平与低电平对应表示1和0。
计算机内部表示任何数据都是用二进制。而与人进行交互时,可以将数据转换成人可以理解的内容:10进制、文字、图片、音频视频。
不同进制的计算方式是相通的:
十进制十进制逢十进一 | 二进制二进制逢二进一 |
9+1 --> 10 | 1+1 --> 10 |
99+1 --> 100 | 11+1 --> 100 |
从0开始一直加1:
十进制 二进制
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
9 | 1001 |
10 | 1010 |
11 | 1011 |
. .. | ... |
128 | 10000000 |
十进制乘10和二进制乘2运算比较:
十进制乘10 | 二进制乘2 |
93*10 --> 930 | 1*2 --> 10 |
930*10 --> 9300 | 10*2 --> 100 |
9300*10 --> 93000 | 100*2 --> 1000 |
93000*10 --> 930000 | 1000*2 --> 10000 |
常用的二进制值:
十进制 | 二进制 | 用2的指数表示 |
1 | 1 | 2^0 |
2 | 10 | 2^1 |
4 | 100 | 2^2 |
8 | 1000 | 2^3 |
16 | 10000 | 2^4 |
32 | 100000 | 2^5 |
64 | 1000000 | 2^6 |
128 | 10000000 | 2^7 |
256 | 100000000 | 2^8 |
512 | 1000000000 | 2^9 |
1024 | 10000000000 | 2^10 |
2048 | 100000000000 | 2^11 |
4096 | 1000000000000 | 2^12 |
8192 | 10000000000000 | 2^13 |
每加一个0都是乘2,所以用2的指数来表示。
例如 10000000,1后面有7位,就可以用2的7次方表示。
用2的指数可以很方便的表示任意的数字值:
10进制 | 2进制 | 2的指数 |
1 | 00000001 | 2^0 |
8 | 00001000 | 2^3 |
16 | 00010000 | 2^4 |
32 | 00100000 | 2^5 |
相加 | 相加 | |
57 | 00111001 |
bit 和 byte
bit - 位
byte - 字节
一个 bit 表示一个电位,1 或 0;一个 byte 表示 8 个电位。
个人安装的光纤宽带如果是 100 兆宽带,下载*高速度只能到十几兆,这是因为采用的表示单位不同。100兆宽带指的是100兆bit,我们一般说下载速度指的是byte,那么100兆bit换算成byte需要除8,也就是 12.5 兆 byte。
java 中的 byte 类型
java 中的 byte 类型整数是单字节类型,也就是说,它使用 8 位(bit) 来表示整数。
8 位(bit)能表示的数字:
10进制 | 2进制 |
0 | 00000000 |
1 | 00000001 |
2 | 00000010 |
3 | 00000011 |
4 | 00000100 |
5 | 00000101 |
6 | 00000110 |
7 | 00000111 |
8 | 00001000 |
... | ... |
255 | 11111111 |
但是,java中,byte类型的左侧的一位规定用来表示符号,0表示正数,1表示负数。那么它表示数字的位就只有7位,而不是8位:
java 中 byte 类型表示正数:
10进制 | 2进制 |
0 | 00000000 |
1 | 00000001 |
2 | 00000010 |
3 | 00000011 |
4 | 00000100 |
5 | 00000101 |
6 | 00000110 |
7 | 00000111 |
8 | 00001000 |
... | ... |
127 | 01111111 |
java 中 byte 类型表示负数:
java 的 byte 类型如何表示负数?我们先从 0-1 这个运算来看:
java 中的负数运算,执行的是与正数相同的加减运算,这样执行 0-1 运算得到的二进制值是 11111111,表示 -1,那么可以以此类推,继续执行减1运算减到最小:
-128 | 10000000 |
... | ... |
-8 | 11111000 |
-7 | 11111001 |
-6 | 11111010 |
-5 | 11111011 |
-4 | 11111100 |
-3 | 11111101 |
-2 | 11111110 |
-1 | 11111111 |
10进制 | 2进制 |
0 | 00000000 |
1 | 00000001 |
2 | 00000010 |
3 | 00000011 |
4 | 00000100 |
5 | 00000101 |
6 | 00000110 |
7 | 00000111 |
8 | 00001000 |
... | ... |
127 | 01111111 |
四种整数类型的最小和最大值
与 byte 类型同理,short,int 和 long 也是用相同的方式表示整数。这四种类型的最小值和最大值分别可以这样表示:
byte(1字节,8位):
2进制 | 2的指数 | |
最小 | 10000000 | -2^7 |
最大 | 01111111 | 2^7 - 1 |
short(2字节,16位):
2进制 | 2的指数 | |
最小 | 10000000 00000000 | -2^15 |
最大 | 01111111 11111111 | 2^15 - 1 |
int(4字节,32位):
2进制 | 2的指数 | |
最小 | 10000000 00000000 00000000 00000000 | -2^31 |
最大 | 01111111 11111111 11111111 11111111 | 2^31 - 1 |
long(8字节,64位):
2进制 | 2的指数 | |
最小 | 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 | -2^63 |
最大 | 01111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 | 2^63 - 1 |
二进制和十进制的互转
java 中提供了二进制和十进制的互转方法:
Integer.toBinaryString(int i)
String s = Integer.toBinaryString(257);
System.out.println(s);
// 打印结果: 100000001
1
2
3
4
Integer.parseInt(String s, int radix)
- 第二个参数指定进制
- 这里不支持直接使用负数的二进制码来表示负数,而是要用正数的二进制码添加负号来表示
int a = Integer.parseInt("1100101101", 2);
System.out.println(a);
以上就是00100000的十进制是多少?的详细内容,希望通过阅读小编的文章之后能够有所收获!