二进制
2021/8/31 6:06:41
本文主要是介绍二进制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
二进制
计算机中的数据均以二进制形式保存。二进制跟十进制相似,但是只有0,1,逢2进1,十进制中的2就是二进制中的10。
1 十进制与二进制的转化
1.1 二进制转换成十进制:
1110 (2)= 1 * 23+1 * 22+1 * 21+0 * 20 = 14
1.2 十进制转换成二进制
问题:12(10)= ____(2)
这时候我们可以利用短除法,对十进制除以二取余,然后倒序排列得到二进制:
12%2 = 0·········· (1)
6%2 = 0············(2)
3%2 = 1············(3)
1%2 = 1············(4)
答案: 1100(2)
1.3 补充
以上是正整数的十进制与二进制的转换,那么负整数呢?正分数和负分数呢?
-
负整数
首先我们要了解十六位的二进制能代表的范围:
-
无符号是0000 0000 0000 0000到1111 1111 1111 1111,转换成十进制是0~65535
-
有符号的时候第一位是符号位,0表示正数,1表示负数,其余为数值位。
-
对于原码,最小值是1111 1111 1111 1111,最大值是0111 1111 1111 1111,转换成十进制是-32767~32767。
最小值:1111 1111 1111 1111(2) =
$$
\frac{(1-2^{15})\cdot1}{1-2}
$$
=-32767 (10)最大值:0111 1111 1111 1111(2) =
$$
\frac{(1-2^{15})\cdot1}{1-2}
$$
=32767 (10) -
对于反码,只是数值位取反,符号位不变,所以数值不会变。
-
而对于补码,由于0的补码是固定的唯一的就是0000 0000 0000 0000,所以1000 0000 0000 0000表示的并不是0,而是
最小值-32768。为什么呢?因为在计算机中只有加法,而1000 0000 0000 0000实际上是溢出一位,应该是1 1000 0000 0000 0000,它的值为-215 = -32768。所以他的取值范围是1000 0000 0000 0000到0111 1111 1111 1111,即-32768~32767。正数的补码、反码都是原码本身。
-
-
-
小数
-
二进制转换成十进制
小数部分依次乘以2的负几次方
问题:0.001(2)= ____(10)
0 * 2-1+0 * 2-2+1 * 2-3 = 1/8 = 0.125
答案: 0.125(10)(保留5位小数)
-
十进制转换成二进制
小数部分乘以2,取整数部分,直至乘积没有小数部分,然后按序排放。例如:
问题:0.12(10)= ____(2)
0.12 * 2 = 0.24··········0(1)
0.24 * 2 = 0.48··········0(2)
0.48 * 2 = 0.96··········0(3)
0.96 * 2 = 1.92··········1(4)
0.92 * 2 = 1.84··········1(5)
······
答案: 0.00011(2)(保留5位小数)
-
2 字节(byte)
我们都知道 int 类型占用4个字节,lang类型占用8个字节,字节类型占用一个字节,那么一个字节在二进制要如何表示呢?
在计算机中一个字节由八位二进制表示,所以最大是1111 1111 (255)超过255的话要用两个字节。
这篇关于二进制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)