• 计算机进制转换:二进制、八进制、十进制、十六进制


    一、什么是进制

    在生活中,我们通常都是使用阿拉伯数字计数的,也就是10进制,以10为单位,遇10进一,所以是由0,1,2、3、4、5、6、7、8、9组成的;而在计算机中,计算机是无法识别10进制数的,它只能识别01代码,也就是二进制,由0、1两位数字组成,逢二进一。

    那么什么是进制呢,进制就是进位制,是人们规定的一种数字进位方法;对于任何一种进制(X进制),都表示某一位置上的数运算时是逢X进一位,如:二进制就是逢二进一,八进制就是逢八进一, 十进制是逢十进一,十六进制是逢十六进一,以此类推。

    二、二进制、八进制、十进制、十六进制简介

    二进制:由0,1组成,运算规律是逢二进一,计算机只能识别二进制表示的数据;

    八进制:由0、1、2、3、4、5、6、7组成,运算规律是逢八进一;

    十进制:由0,1,2、3、4、5、6、7、8、9组成,运算规律是逢十进一;

    十六进制:由数字0~9以及字母A,B,C,D,E,F组成,运算规律是逢十六进一;

    三、进制转换

    以十进制数13为例,实现各进制数的转换:

    1. 十进制和二进制之间相互转换

    十进制--->二进制:

    对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。

    另外,所得到的商的最后一位余数是所求二进制数的最高位。

    图1,十进制转二进制

    二进制--->十进制:

    进制数第1位的权值是2的0次方,第2位的权值是2的1次方,第2位的权值是2的2次方,依次计算,公式:第N位 * 2的N-1次方,结果再相加便是最后结果。

    图2,二进制转十进制

    2. 十进制和八进制之间转换:

    十进制--->八进制:

    10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:将图1中的基数由2变成8,然后依次计算。

    八进制--->十进制:

    可参考图2中二进制的计算过程: 进制数第1位的权值为8的0次方,第2位权值为8的1次方,第3位权值为8的2次方,依次计算,公式:第N位 * 8的N-1次方,结果再相加便是最后结果。

    3. 十进制和十六进制之间转换:

    十进制--->十六进制:

    10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:将图1中的基数由2变成16,然后依次计算。

    十六进制--->十进制:

    第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方,依次计算,公式:第N位 * 16的N-1次方,结果再相加便是最后结果。

    4. 二进制和八进制之间转换: 可先转换为十进制在转换为二进制或者八进制

    5. 二进制和十六进制之间转换: 可先转换为十进制在转换为二进制或者十六进制

    6. 八进制和十六进制之间转换: 可先转换为十进制在转换为十六进制或者八进制

    四、二进制数字存储单位

    在计算机的二进制数系统中,位简记为bit,也称为比特,是数据存储的最小单位,每个二进制数字0或1就是一个位(bit),也就是一比特;也可以把二进制中的0和1看做开关中的“开”和“关”,1表示“开”,0表示“关”。

    8 bit(位)= 1B,也就是一个字节(Byte),然而1KB却不等于1000B,下面是详细的计算规则:

    1B(byte,字节)= 8 bit;

    1KB(Kibibyte,千字节)= 1024B = 2^10 B;

    1MB(Mebibyte,兆字节,百万字节,简称“兆”)= 1024KB = 2^20 B;

    1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)= 1024MB = 2^30 B;

    1TB(Terabyte,万亿字节,太字节)= 1024GB = 2^40 B;

    1PB(Petabyte,千万亿字节,拍字节)= 1024TB = 2^50 B;

    以上这些是二进制数的存储单位计算规则,而在硬盘容量也能看到类似的单位,但是硬盘的容量通常是以十进制标识的,所以显示有500G容量的硬盘实际容量却不足500G。

    五、原码、反码和补码

    在计算机内,有符号数(这里的符号指的是正负符号,有符号数指的就是正负数)有3种表示法:原码、反码和补码,所有数据的运算都是采用补码进行的:

    1. 正数的原码,反码,补码都相同;

    2. 负数的有些不同,详情如下:

    • 原码:根据二进制定点表示法,二进制最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
    • 反码:负数的反码是对其原码逐位取反(0变1,1变0),但符号位除外。
    • 补码:负数的补码是在其反码的末位加1(逢二进一)。

    需要注意的是:求反码的时候,最高位(符号位)是不能被改变的, 正数的符号位是0,负数的符号位是1。

    例子:分别求出5和-5的原码、反码和补码

    字节与进制的关系

    • 1、一个字节 = 8位(8个二进制位) 1Byte = 8bit;
    • 2、一个十六进制 = 4个二进制位
    • 3、一个字节 = 2个十六进制

    转载地址:《[计算机基础] 计算机进制转换:二进制、八进制、十进制、十六进制》

    其它参考:《计算机各单位间转换(位,字节,进制间转换)》

  • 相关阅读:
    进程和线程(一)
    树和二叉树(一)
    栈和队列
    《Learning to Coordinate with Coordination Graphs in Repeated Single-Stage Multi-Agent Decision Problems》- ICML2018
    简单Socket网络通信
    Spring Websocket实现简易在线聊天功能
    Spring实现WebSocket通信
    Spring中配置使用slf4j + log4j
    构建web应用之——文件上传
    构建web应用之——SpringMVC实现CRUD
  • 原文地址:https://www.cnblogs.com/moqiutao/p/13126899.html
Copyright © 2020-2023  润新知