数制转换(看这一篇就够啦)

       是不是还在为学不会数值转换而发愁?很多课程都介绍过数制转换,但是学了那么多遍,却还是记不住。 没错,这就是我自己,真的记不住哇。

        所以,我精心写了这一篇博客,来好好梳理一下数制转换的故事。

       话不多说,开始吧!   PS:如果帮助到了你的话,别忘了点赞收藏嗷~~

目录

一、信息的表示和存储

二、计算机的数字系统

三、信息的存储单位

四、二进制数的编码表示

1.原码

2.反码(很少用)

3.补码 

五、数的表示范围


一、信息的表示和存储

计算机加工的对象是数据信息,而指挥计算机操作的是控制信息。

二、计算机的数字系统

进制的概念与转换(二进制、十进制、八进制、十六进制)_琴酒3的博客-CSDN博客众所周知,计算机中使用的是二进制运算规则,能够读懂二进制语言,但究竟什么是进制?进制之间是如何相互转化的?今天我们就来详细了解下。https://blog.csdn.net/u014042047/article/details/106457090

借鉴上面大大的文章

  • 数制:也称为计数制,是一种计数的方法,是用一组固定的符号和统一的规则来表示数值的方法。在计数过程中采用进位的方法称为进位计数制(进制),包括数位、基数和位权三个要素。
  • 数位:指数字符号在一个数中所处的位置。
  • 基数:指在某种进位计数制中数位上所能使用的数字符号的个数。例如十进制的基数为10(0,1,2,3,4,5,6,7,8,9,)
  • 位权:数制中某一位上的1所表示数值的大小(所处位置的价值)。例如十进制的230,1的位权是100,2的位权是10,3的位权是1。

在计算机汇编语言中,常用的进制有二进制、八进制和十六进制。

数制的表示有2种方法,一种表示方法是数字下标法,对于不同进制的数可以将它们加上括号再用数字下标表示进制:

例如:(110010011111)2 代表二进制数 ; (6137)8 代表八进制数

另一种是用后缀字母表示进制:

二进制 B (binary)
八进制 O (octal)
十进制 D (decimal)
十六进制 H (hexadecimal)

例如:(3AB)H 代表十六进制数;(2654)O 代表八进制

注:当没有下标或后缀时默认为十进制数。
               

 具体不同的数制间转换请详细查看上面大大的博客

三、信息的存储单位

信息的单位通常采用“位”“字节”“字”:

  • 位(bit):量度数据的最小单位,表示一位二进制信息。
  • 字节(byte):一字节由8位二进制数字组成(1 byte = 8bit)。字节是信息存储中最常用的基本单位。

计算机的存储器(包括内存和外存)通常也是以多少字节来表示它的容量。常用单位有:                                                      KB                  1 KB = 1024 B

MB                  1 MB = 1024 KB

GB                  1 MB = 1024 Mb

  • 字(word):字是位的组合,并作为一个独立的信息单位处理。

字又称为计算机字,它的含义取决于机器的类型、字长以及使用者的要求。常用的固定字长有8位、16位、32位、64位等。

  • 机器字长:与机器硬件指标有关的单位。一般指参加运算的寄存器所含有的二进制数的位数,它代表了机器的精度,如32位、64位等。

四、二进制数的编码表示

一般情况下,用0表示正号,1表示负号,负号位放在数的最高位。例如:

 人们研究二进制编码的实质就是对负数表示的不同编码。

1.原码

将符号数字化为0或1,数的绝对值与符号一起编码,即所谓 “ 符号 - 绝对值 表示的编码,称为原码。

 原码使用编码简单直观,与真值转换方便。但是也有缺点

(1)零的表示不唯一,具有二义性,给机器判零带来麻烦。

 (2)用原码进行四则运算时,符号位需要单独处理,且运算规则复杂。例如若两数同号,两数相加,结果取共同的符号,若两数异号,要由大数减去小数,结果冠以大数的符号。借位操作如果用计算机硬件来实现是很困难的。

2.反码(很少用)

  • 正数的反码与原码表示相同。
  • 负数的反码与原码的关系如下:负数反码的符号位与原码相同(仍用1表示),其余各位取反(0变1,1变0)。

       例如:

 

3.补码 

  • 模数的概念

例如时间计数,模数为12,转了一圈回到原点,如果现在是6点,你想拨到3点,你可以向后拨9个小时,或者向前拨3个小时。3+9=12,3与9互补。

拓展:

  • 补码

       方法一:对于一个二进制负数,可用其模数与真值做加法(模数减去该数的绝对值)求得其补码n位整数,包含符号位,模数为$$2^n

   

       方法二:对于一个负数,其补码由该数反码的最末位加1求得。对于正数来说,其原码、反码、补码形式相同。

 

  •  补码的特点:零的表示唯一。

  • 补码的运算规则 :符号位参加运算,运算结果仍为补码。

结果为正,就是原码;结果为负,则是负数的补码形式,若要变为原码,需要对补码再求补,即可还原为原码。

五、数的表示范围


好啦,就写到这儿吧!借用了很多《C++语言程序设计(第五版)》里面的内容。这次应该可以记住啦。

写于春日,就用一首诗结尾吧

晚春

韩愈 〔唐代〕

草木知春不久归,百般红紫斗芳菲。
杨花榆荚无才思,惟解漫天作雪飞。


  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值