• 软考笔记(2)——计算机基本单位,进制转换,原码反码补码


    1.计算机基本单位

    计算机的最小单位叫做比特,或者叫做位。b或bit

    字节,byte,简写为B,1B=8b

    千字节,KB,1KB=1024B

    兆字节,MB,1MB=1024KB

    吉字节,GB,1GB=1024MB

    太字节,TB,1TB=1024GB

    最小的数据单位:b
    最小的存储单位:byte

    2.进制

    2.1简介

    10进制:0~9
    2进制:0~1
    8进制:0~7
    16进制:0~15

    n进制——>十进制: 按权展开求和
    十进制——>n进制:除n取余法

    在这里插入图片描述
    8进制转16进制:8进制转10进制再转16进制
    16进制的10~15分别用A,B,C,D,E,F来表示

    2.1写题

    注:通常对十六进制数的表示,可以在数字的右下角标注16或H,或者数字开端是0x

    1.在这里插入图片描述
    选B

    2.在这里插入图片描述
    选B
    3.
    在这里插入图片描述
    在这里插入图片描述
    4.
    在这里插入图片描述
    在这里插入图片描述

    3.原码反码补码移码

    3.1讲解

    在这里插入图片描述
    ①原码
    在这里插入图片描述
    ②反码在这里插入图片描述
    ③补码

    ④移码
    在这里插入图片描述
    在这里插入图片描述

    正数:原码=反码=补码

    3.2各种码的范围

    在这里插入图片描述
    可以看到,无论是什么码,它们的最大值都是一样的。至于为什么是这么多,在此举个例子,假定n=8
    那么0 1 1 1 1 1 1 1就是最大值。0为符号位。那么1 1 1 1 1 1 1等于多少呢?不用傻傻地算。1 1 1 1 1 1 1不就等于1 0 0 0 0 0 0 0 - 1 吗。
    1 0 0 0 0 0 0 0等于多少?2的7次方。
    所以最大值就是2的7次方减一。

    原码和反码的最小值同理,不过把符号位变成1表示负数即可。
    移码最小值不一样是因为补码最小值不一样。
    补码最小值不一样是因为人为的设定。
    我们都知道,计算机存储的是补码,原码和反码都是补码衍生的基础。在原码和反码中,有两个数可以表示0,+0和-0。然而对于计算机来说是不可忍受的浪费。因此,把补码的-0,也就是1 0 0 0 0 0 0 0,定值为-128,因此,补码比原码反码多一个最小负数。
    根据移码的定义可知移码的最小值和补码的相同。

    定点小数的整数位为符号位,小数点后为数值位,范围计算方法和整数一样。
    重要计算技巧:补码的补码等于原码

    3.3写题

    在这里插入图片描述
    闭眼选C

    在这里插入图片描述
    在这里插入图片描述
    所以选B

    在这里插入图片描述
    考补码的范围。
    在这里插入图片描述
    选C

    在这里插入图片描述
    补码可以简化计算机运算部件的设计,因为补码可以让减法像加法一样运算。

    我一直觉得设计补码的人太聪明。
    拿原码来讲,0001+1001=1010
    那么这个式子的意思是1+(-1)=-2
    天王老子来了这也是错的。
    正数a加上正数b的负数等同于a减b
    那么如何实现正数和负数的相加。
    于是科学家发明了补码。我相信科学家是先用相反数实验。1+(-1)=0
    1=0001
    那么-1如何表示呢?首先四位二进制最大的数值是1111,0001+1110=1111
    不难发现原码加上它的反码就等于最大值(我的例子设定是4位二进制),那再加个1,不就等于10000了么(符号位与数值位一样参与运算),不就溢出了么,不就只留下0000了么。因此,相反数就好解决了,负数都用正数原码取反加一表示。

    到这里你应该就明白为何补码可以让减法像加法一样运算。
    选B

    在这里插入图片描述
    闭眼选B,至于为什么翻上面我的解释。

    在这里插入图片描述
    在这里插入图片描述
    所以选B

    在这里插入图片描述
    闭眼选D

  • 相关阅读:
    『Linux - gcc / g++』c程序翻译过程
    SWUST OJ#794 最近对问题
    认识Dubbo与RPC
    Educational Codeforces Round 138 (Rated for Div. 2) D
    Windows 和 Linux 这2个系统在进行编程实现的时候的一些区别:
    python基于django的网上人才招聘系统
    java基本数据类型如何定义和初始化呢?
    rust: function
    easypoi多级表头、多个sheet导出,动态导出列
    Python将.arff文件转换为.mat文件
  • 原文地址:https://blog.csdn.net/heipao17/article/details/126997135