zoukankan      html  css  js  c++  java
  • 数据是用二进制数表示的

    问题

    1. 32位是几个字节?

      4字节。1字节=8位。

    2. 二进制数01011100转换成十进制是多少?

      92

    3. 二进制数00001111左移两位后,会变成原数的几倍?

      4倍。二进制数左移1位会变为原来的2倍。

    4. 补码形式表示的8位二进制数11111111,用十进制表示的话是多少?

      所有位都是1的二进制数,用十进制表示就是-1。

    5. 补码形式表示的8位二进制数10101010,用16位的二进制数表示的话是多少?

      使用原数的最高位来填充高位。1111111110101010.

    6. 反转部分图形模式时,使用的是什么逻辑运算?

      XOR运算。XOR运算只反转与1相对应的位,NOT运算是反转所有的位。

    用二进制数表示计算机信息的原因

    IC的所有引脚只有直流电压0V或5V两个状态。这个特性决定了计算机的信息数据只能用二进制数来处理。虽然二进制数并不是专门为IC而设计的,但和IC的特性非常吻合。

    计算机处理信息的最小单位——位bit,就相当于二进制中的一位。8位二进制数被称为1个字节。字节是最基本的信息计量单位。位是最小单位,字节是基本单位。内存和磁盘都使用字节单位来存储和读写数据。用字节单位处理数据时,如果数字小于存储数据的字节数,那么高位上就用0填补。

    什么是二进制数

    位权的思考方式除了适用十进制数,也同样适用于任何进制数。而多少进制称为基数。

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

    移位运算指的是将二进制数值的各数位进行左右移位的运算。哪怕是十进制数,也是将其二进制数值进行移位运算。

    左移后空出来的低位用0补齐;右移时的操作要复杂一些,在下一节介绍。

    移位操作使最高位或最低位溢出的数字,直接丢弃就可以了。

    便于计算机处理的补数

    二进制数中表示负数值时,一般会把最高位作为符号来使用,因此我们把这个最高位称为符号位。符号位是0时表示正数,符号位是1时表示负数。

    计算机在做减法运算时,实际上内部是在做加法运算。为此,在表示负数时就需要使用二进制的补数。补数就是用正数来表示负数。

    为了获得补数,我们需要将二进制数的各数位的数值全部取反,然后再将结果加1。

    逻辑右移和算术右移的区别

    当二进制数的值表示图形模式而非数值时,移位后需要在最高位补0,这就称为逻辑右移。

    将二进制数作为带符号的数值进行运算时,移位后要在最高位填充移位前符号位的值,这就称为算术右移。

    只有在右移时才必须区分逻辑位移和算术位移。左移时,无论是图形模式还是相乘运算,都只需在空出来的低位补0即可。

    符号扩充:在保持值不变的前提下将其转换成位数更高的二进制数。不管是正数还是用补数表示的负数,都只需用符号位的值填充高位即可。

    掌握逻辑运算的窍门

    逻辑运算包括与AND、或OR、非NOT、异或XOR四种。掌握逻辑运算的窍门,就是要摒弃用二进制数表示数值这一想法,而是把它看作是图形或者开关。逻辑运算的运算对象不是数值,因此不会出现进位的情况。

  • 相关阅读:
    Css的transform和transition
    移动端事件
    回流和重绘
    Swift更新至2.2版本 语言变化
    编程中遇到的 问题 总结
    NSNotificationCenter
    iOS中boolean、Boolean、BOOL、bool的区别
    推送的 代码实战写法
    MKNetworkKit的使用
    MKNetworkKit 的介绍
  • 原文地址:https://www.cnblogs.com/fr-ruiyang/p/14539295.html
Copyright © 2011-2022 走看看