为什么用二进制进行数据传输、二进制概述及移位运算和乘除的关系

目录

一、为什么用二进制进行数据传输

二、二进制数概述

三、移位运算和乘除的关系


一、为什么用二进制进行数据传输

计算机内存都是由IC电子原件组成的,其中CPU和内存也是IC电子原件的一种

CPU图:

52c3713e0328427f924e77a9709857ae.jpeg

 内存条图:

2acf6b1ecfa04665845d8fe40985bc77.jpeg

 CPU和内存使用IC电子原件作为基本单元,IC电子原件有不同钟形状,但是其内部的组成单元称为一个个的引脚。有人说CPU和内存内部都是超大规模集成电路,其实IC就是集成电路(Integrated Circuit)

IC元件切面图:

9737f797536841bfb5e3ba8958e639f1.png

IC元件两侧排列的四方形就是引脚,IC的所有引脚,只有两种电压:0V5V,IC的这种特性,也就决定了计算机的信息处理只能用0和1表示,也就是二进制来处理。一个引脚可以表示一个0或1,所以二进制的表示方式就变成0,1,10,11,100,101等,虽然二进制数并不是专门为引脚来设计的,但是和IC引脚的特性非常吻合

计算机的最小集成单位为 ,也就是 比特(bit),二进制数的位数一般为8位、16位、32位,64位,也就是8的倍数,为什么要跟8扯上关系?因为在计算机中,把8位二进制数统称为一个字节,一个字节有8位,也就是由8个bit构成

为什么1个字节等于8位?因为8位能够涵盖所有的字符编码

字节是最基本的计量单位,位是最小的单位

用字节处理数据时,如果数字小于存储数据的字节数(= 二进制的位数),那么高位和数学的数字表示是一样的,左侧表示高位,右侧表示低位。比如这个六位数用二进制数来表示就是100111,只有6位,高位需要用0填充,填充完后是00100111,占一个字节,如果用16位表示就是0000 0000 0010 0111占用两个字节

我们一般口述的32位和64位的计算机一般就指的是位数,32位一次可以表示4个字节,64位一次可以表示8个字节的二进制数

我们一般在软件开发中用十进制数表示逻辑运算,也会被计算机转换为二进制数处理。对于二进制数,计算机不会区分它是图片、音频文件还是数字,这些都是一些数据的结合体

二、二进制数概述

我们把00100111 这个数转换为十进制,二进制转换为十进制数,直接将各位置上的值 * 位权即可

 二进制转换十进制示意图:

55cb9dfdbfe04980bb0f2418c47a4a8d.png

也就是说,二进制数代表的 0010011转换成十进制就是39,这个39并不是3和9两个数字连着写,而是3 * 10 + 9 *1 ,这里面的 10,1 就是位权,以此类推,上述例子中的位权从高为到低位以此就是 7 6 5 4 3 2 1 0 。这个位权也叫做次幂,那么最高位就是2的7次幂,2的6次幂等等。二进制数的运算每次都会以2为底,这个2指的就是基数,那么十进制的基数也就是10。在任何情况下位权的值都是 数的位数 -1,那么第一位的位权就是 1 -1 =0,第二位的位权就是 2 -1=1,依次类推

其他进制转换的可参考我以前的博客:

(1条消息) 进制转换、原码、反码、补码及位运算详解_夏志121的博客-CSDN博客_进制转换器补码https://blog.csdn.net/m0_61961937/article/details/124903628?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166459983716800180621267%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166459983716800180621267&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-124903628-null-null.nonecase&utm_term=%E8%BF%9B%E5%88%B6%E8%BD%AC%E6%8D%A2&spm=1018.2226.3001.4450

三、移位运算和乘除的关系

跟十进制一样,二进制也能加减乘除,只要注意逢2进位即可。二进制的运算,也是计算机程序所特有的运算,因此了解二进制的运算必须要掌握

移位运算是指将二进制的数值的各个位置上的元素左移和右移操作

移位过程图:

72e70d929b7c4116b6f703eabd76853a.png

上述例子还是以39为例,我们先把十进制的39转换为二进制的 0010 0111,然后 向左移位 << 一个字节,也就变成了 0100 1110 ,那么再把此二进制数转换为十进制数就是上面的78,十进制的78竟然是十进制的39的2倍关系。在让 0010 0111左移两位,也就是 1001 1100,得出来的值是156,相当于扩大了四倍

因此可以得出结论,左移相当于是数值扩大的操作

 

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏志121

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值