数制

数制是整个数字逻辑的基础,计算机只识别0,1。因此如何将我们现实生活中常用的十进制数转换为二进制,或者其他进制,以及掌握常用的几种数制是我们本篇文章的重点。

一、数制

十进制:

(1)计数符号:0,1,2,3,4,5,6,7,8,9.

(2)进位规则:逢十进一

(3)采用位置计数法

例:$(1917.45)_10 = 1*10^3+9*10^2+1*10^1+7*10^0+4*10^{-1}+5*10^{-2}$

二进制:

(1)计数符号:0,1.

(2)进位规则:逢二进一

(3)位置计数法

例:$(101.11)_2 = 1*2^2+0*2^1+1*2^0+1*2^{-1}+1*2^{-2}$

十六进制:

(1)计数符号:0,1,…,9,A,B,C,D,E,F.

(2)进位规则:逢十六进一

(3)位置计数法

例:$(6D.4B)_{16} = 6*16^1+D*16^0+4*16^{-1}+B*16^{-2}$

八进制:

(1)计数符号:0,1,…,6,7

(2)进位规则:逢八进一

(3)位置计数法

例:$(63.45)_8=6*8^1+3*8^0+4*8^{-1}+5*8^{-2}$

整数十进制转二进制:(除2逆取余)

例:将十进制数53转换为二进制数.

小数十进制转二进制:(乘2顺取整)

例:将十进制数0.6875转换为二进制数.

二进制转八进制和十六进制

二进制转成八进制时:以小数点为界,小数点左边往高位,小数点右边往低位,每三位为一组,不足三位的用0补充.

二进制转成十六进制时:以小数点为界,小数点左边往高位,小数点右边往低位,每四位为一组,不足四位的用0补充.

二、二进制算数运算

二进制加法:

0+0=0,0+1=1,1+0=1,1+1=10 产生进位1

二、二进制算数运算

二进制加法:

0+0=0,0+1=1,1+0=1,1+1=10 产生进位1

例:两个四位二进制数相加1001(9)+1011(11)=10100(20)

二进制减法:

0-0=0,1-1=0,1-0=1,10-1=1 产生借位1,并且我们认为高位总有位可借

例:两个三位二进制数相减 101-011=010

二进制乘法:

0*0=0,0*1=0,1*0=0,1*1=1

例:两个两位二进制数相乘 11*11=1001

二进制除法:

例:1001/11=11

三、二-十进制码(BCD码)

用四位二进制码来表示一位十进制数字.

常见的BCD码:8421码,5421码,2421码,余3码.

8421码

    2421码

余3码(8421码+0011)

例1:用8421BCD码表示十进制数$(73.5)_{10}$.

    7=0111,3=0011,5=0101,故$(73.5)_{10}=(01110011.0101)_{8421BCD码}$

例2:把8421BCD码01100111.01011000转换为十进制数.

    0110=6,0111=7,0101=5,1000=8,故$(01100111.01011000)_{8421BCD码}=(67.58)_{10}$

四、格雷码(Gray码)

格雷码为无权码,特点为:相邻两个代码之间仅有一位不同,其余各位均相同.

三位格雷码$G_2G_1G_0$和三位二进制码$B_2B_1B_0$之间的关系:

五、奇偶校验码:具有纠错能力的编码

编码方法:在源码组的基础上增加一个码位使码组中含1的个数为奇数(称为奇校验)或偶数(称为偶校验)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏郭耀华‘s Blog

Java命名规范

Java命名规范 定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性。 包的命名  (全部小写,由域名定义) Java包的名字都是由小写单词组...

3339
来自专栏轮子工厂

8. 一花一世界,while for 循环?

wo这周有点懒啊,这才第 2 篇,个人有点事情,本来预计可以更新……1 篇的,︿( ̄︶ ̄)︿

542
来自专栏CDA数据分析师

入门 | 一文带你了解Python集合与基本的集合运算

了解 Python 集合: 它们是什么,如何创建它们,何时使用它们,什么是内置函数,以及它们与集合论操作的关系

800
来自专栏猿人谷

A+B for Matrices 及 C++ transform的用法

题目大意:给定两个矩阵,矩阵的最大大小是M*N(小于等于10),矩阵元素的值的绝对值小于等于100,求矩阵相加后全0的行以及列数。 1 #include<io...

1819
来自专栏Petrichor的专栏

tensorflow编程: Variables

tf.moving_average_variables tf.global_variables_initializer tf.local_variabl...

1031
来自专栏mathor

KMP(1)

993
来自专栏北京马哥教育

Python While 循环语句

? 文 | 豌豆 来源 | 菜鸟教程 豌豆贴心提醒,本文阅读时间3分钟,文末有秘密! Python 编程中 while 语句用于循环执行程序,即在某...

3787
来自专栏Micro_awake web

JavaScript(四):运算符&数据类型转换

+:算符的加法;连接字符串 加法会将其它类型的值,自动转为字符串,然后再进行连接运算! 1 var a=1+2; 2 console.log('first:...

1856
来自专栏小樱的经验随笔

C++ STL学习之容器set和multiset (补充材料)

一、set和multiset基础 set和multiset会根据特定的排序准则,自动将元素进行排序。不同的是后者允许元素重复而前者不允许。 ? 需要包含头文件:...

3418
来自专栏专注数据中心高性能网络技术研发

[Effective Modern C++(11&14)]Chapter 1: Deducing Types

1523

扫码关注云+社区