第一篇:二进制转十进制(共)
二进制数转换成十进制数
二进制的1101转化成十进制
1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方 不过次方要从0开始
相反 用十进制的数除以2 每除一下将余数就记在旁边
最后按余数从下向上排列就可得到1101或者用下面这种方法:
13=8+4+0+1=8+4+1(算出等于13就行了)
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为“按权相加”法。
本人有个更直接的方法,例如二进制数1000110转成十进制数可以看作这样:
数字中共有三个1 即第二位一个,第三位一个,第七位一个,然后十进制数即2的2-1次方+2的3-1次方+2的7-1次方即2+4+64=70 次方数即1的位数减一。如此计算只需要牢记2的前十次方即可在此本人为大家陈述一下:2的0次方是1
2的1次方是2
2的2次方是4
***222的的的的的的的的的的的的的的的的的的3次方是8 4次方是16 5次方是32 6次方是64 7次方是128 8次方是256 9次方是512 10次方是1024 11次方是2048 12次方是4096 ***81920次方是次方是次方是次方是次方是次方是次方是次方是8192 16384 32768 65536 131072 262144 524288 1048576
在这里仅为您提供前20次方,若需要更多请自己查询。编辑本段十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。1.十进制整数转换为二进制整数
十进制整数转换为二进制整数采用“除2取余,逆序排列”法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
十进制整数转二进制
如:255=(11111111)B
255/2=127=====余1
127/2=63======余1
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1 3/2=1=========余1 1/2=0=========余1 789=1100010101 789/2=394.5 =1 第10位 394/2=197 =0 第9位 197/2=98.5 =1 第8位 98/2=49 =0 第7位 49/2=24.5 =1 第6位 24/2=12 =0 第5位 12/2=6 =0 第4位 6/2=3 =0 第3位 3/2=1.5 =1 第2位 1/2=0.5 =1 第1位
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用“乘2取整,顺序排列”法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
十进制小数转二进制
如:0.625=(0.101)B
0.625*2=1.25======取出整数部分1
0.25*2=0.5========取出整数部分0
0.5*2=1==========取出整数部分1
再如:0.7=(0.1 0110 0110...)B
0.7*2=1.4========取出整数部分1 0.4*2=0.8========取出整数部分0 0.8*2=1.6========取出整数部分1 0.6*2=1.2========取出整数部分1 0.2*2=0.4========取出整数部分0 0.4*2=0.8========取出整数部分0 0.8*2=1.6========取出整数部分1 0.6*2=1.2========取出整数部分1 0.2*2=0.4========取出整数部分0
1、二进制数、八进制数、十六进制数转十进制数
有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2...举例:
110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D 110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D
110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D
2、十进制数转二进制数、八进制数、十六进制数
方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。
例:见四级指导16页。
3、二进制数转换成其它数据类型
3-1二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,就是一个相应八进制数的表示。
010110.001100B=26.14Q 八进制转二进制反之则可。
3-2二进制转十进制:见1
3-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足,就是一个相应十六进制数的表示。
00100110.00010100B=26.14H 十进制转各进制
要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。
一、十进制转二进制
如:55转为二进制
2|55
27――1 个位
13――1 第二位
6――1 第三位
3――0 第四位
1――1 第五位
最后被除数1为第七位,即得110111 二、十进制转八进制
如:5621转为八进制
8|5621
702 ―― 5 第一位(个位)
―― 6 第二位―― 7 第三位―― 2 第四位
最后得八进制数:127658 三、十进制数十六进制
如:76521转为十六进制
16|76521
4726 ――5 第一位(个位)
295 ――6 第二位――6 第三位―― 2 第四位
最后得1276516
二进制与十六进制的关系
2进制 0000 0001 0010 0011 0100 0101 0110 0111 16进制 0 1 2 3 4 5 6 7
2进制 1000 1001 1010 1011 1100 1101 1110 1111 16进制 8 9 a(10)b(11)c(12)d(13)e(14)f(15)
可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为:
3为0011,A 为1010,合并起来为00111010。可以将最左边的0去掉得1110102 右要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,将各单位对照出16进制的值即可。
二进制与八进制间的关系
二进制 000 001 010 011 100 101 110 111 八进制 0 1 2 3 4 5 6 7
二进制与八进制的关系类似于二进制与十六进制的关系,以八进制的各数为0到7,以三位二进制数来表示。如要将51028 转为二进制,5为101,1为001,0为000,2为010,将这些数的二进制合并后为1010010000102,即是二进制的值。
若要将二进制转为八进制,将二进制的位数由右向左每三位一个单位分隔,将事单位对照出八进制的值即可。
第二篇:作业5二进制与十进制
作业5二进制与十进制
1、十进制数用字母()表示 A.B
B.D
C.H
D.O
2、二进制数用字母()表示 A.B
B.D
C.H
D.O
3、计算机存储和处理数据的基本单位是____。
A、bit B、Byte C、GB D、KB
5、二进制数1011转换成十进制数是()A.10
B.11
C.12
D.13
6、二进制数10111转换成十进制数是()A.20
B.21
C.22
D.23
7、十进制数21转换成二进制数是()A.10110
B.10101
C.10100
D.11001
8、为了让计算机能统一的用二进制形式的代码存储、处理各种数据,国际上普遍采用了一种(b)字符编码。
A.GB2312码 B.ASCII码
C.GBK码
D.BIG-5码
9、用Ultraedit软件观察字符串“2013 期中测试”的内码如下图所示,由图可知“中”的内码是()
A.20 C6 B.C6 DA C.DA D6 D.D6 DO 10、1MB的含义是()
A、1000K字节
B、1024K汉字
C、1000K个字节
D、1024K个字节
第三篇:二进制与十进制转化
二进制与十进制转化:
二进制11与十进制2相加得多少?
解析:此题考查的是二进制与十进制的相互转化,属于高中信息技术的难点。对于二进制与十进制的混合运算必须都换成二进制或都换成十进制才能进行。二进制与十进制的相互转换可用8421法。“8421”法的原理说白了就是一种凑数法,按2的n次方的值列出,根据不同的情况进行“凑数”。我们把2的n次方列出分别是:
20=1 21=2 22=4 23=8 24=16 25=
3226=64„„
一、对于二进制转换成十进制数
例如:二进制数1010转换成十进制数
4 2 1
二进制数: 1 0 1 0(结果为凡是1对应的数相加:8+2=10)
例1:110转换成十进制数
4 2 1
1 0(结果为凡是1对应的数相加:4+2=6)
例2:11100转换成十进制数
8 4 2 1
1 1 0 0(结果为凡是1对应的数相加:16+8+4=28)
二、对于十进制转换成二进制数
例如:十进制数不胜数10转换成二进制数
4 2 1
(因为10=8+2)0 1 0(故凡是凑到的8和2下面都是1,没有凑到的为0)
例3:十进制数6转换成二进制数
4 2 1
(因为6=4+2)
0 1 1 0(故凡是凑到的4和2下面都是1,没有凑到的为0)
例4:十进制数28转换成二进制数
8 4 2 1
(因为16+4+8=28)
1 1 0 0(凑到的为1,没有凑到的为0)
因四个选项都是二进制数,所以得将题干中的十进制数2转换成二进制数。根据8421法,十进制数2转换成二进制数是(10)2.。
然后(11)2+(10)2=(101)2(注意二进制进位原则“逢二进一”)。
方法二:将二进制数(11)2转化为10进制为(2+1)=3,3与10进制数2相加得5,十进制5转化为二进制5=(4+1)10=(101)2
第四篇:基于vhdl语言的二进制转十进制并用数码管显示的设计
河南科技学院机电学院 VHDL课程设计报告
题目:八位数码管显示
专业班级:电气工程及其自动化102 姓
名:
周迎接
学 号:
20100344214
指导教师: 付广春
完成日期:2012年12月 27 日
目 录 引言…………………………………………………………………………2 2 总体设计方案………………………………………………………………2 2.1 输入引脚数目的计算……………………………………………………3 2.2 二进制转为十进制部分程序设计………………………………………3 2.3 数码管显示部分程序设计………………………………………………4 3 仿真显示……………………………………………………………………5 3.1 显示3仿真图……………………………………………………………5 3.2显示96的仿真图…………………………………………………………5 4 心得体会……………………………………………………………………6 参考文献………………………………………………………………………6 附录1…………………………………………………………………………7
摘要
随着当今社会电子技术的快速发展,单凭借硬件已不再能满足广大人民的需求,这时候软件就显示除了他们突出的优点。与其他编程语言相比,VHDL语言以其超强的硬件描述能力,良好的可读性和可移植性,以及其良好的用户自定义性受到了广大用户的青睐。VHDL语言在最近几年的发展及其迅猛,由此可以看出其用途已经变的越来越广泛。
一个VHDL程序由5个部分组成,包括实体(ENTITY)、结构体(architecture)、配置(coxnfiguration)、包(package)和库(library)。实体和结构体两大部分组成程序设计的最基本单元。图2.2表示的是一个VHDL 3 程序的基本组成。配置是用来从库中选择所需要的单元来组成该系统设计的不同规格的不同版本,VHDL和Verilog HDL已成为IEEE的标准语言,使用IEEE提供的版本。包是存放每个设计模块都能共享的设计类型、常数和子程序的集合体。库是用来存放已编译的实体、结构体、包和配置。在设计中可以使用ASIC芯片制造商提供的库,也可以使用由用户生成的IP库。
今天我所要设计的是基于VHDL语言的8位数码管显示电路,其要实现的功能是把输入的二进制数转换为对应的十进制数,并通过数码管显示出来。其过程大致可以分为通过程序将输入的二进制数先转换为对应的十进制数,然后再把对应的十进制数与数码管的管脚对应起来,使其显示在数码管上。关键词:二进制转为十进制 数码管显示 共阳数码管1 引言
VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于
1982 年。1987 年底,VHDL被美国国防部和IEEE确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点:[1]
(1)VHDL 语言功能强大,设计方式多样
VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法; 既支持模块化设计方法,也支持层次化设计方法。
(2)VHDL 语言具有强大的硬件描述能力
VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。
(3)VHDL 语言具有很强的移植能力
VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。
(4)VHDL 语言的设计描述与器件无关
采用 VHDL 语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。
(5)VHDL 语言程序易于共享和复用
VHDL 语言采用基于库的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。
本次我所要设计的基于VHDL语言的八位数码管显示将充分体现它的部分优点。总体设计方案
2.1 输入引脚数目的计算
因为题目要求数码管要能显示最大的八位十进制二进制数,所以对应的二进制表示的十进制数首先要大于99999999,即2的所有n次幂之和应该大于99999999,数码管才能显示出最大的八位十进制数,所以计算可得n的值最小为27,所以输入二进制数的引脚应该设为27个,其二进制数输入引脚图如图1所示
图1 二进制数输入引脚图
2.2 二进制转为十进制部分程序设计 二进制转为十进制的部分程序如下: architecture one of look is signal ai,bi,ci,ki,ei,fi,gi,hi:integer range 0 to 9;signal di:integer range 0 to 99999999;begin di<=conv_integer(d);2.3 数码管显示部分程序设计
2.3.1 程序中数码管的选择及显示的设置
在本设计中按照我的程序硬件所选用的应该为共阴极数码管,且当某一位数码管不需要显示数据时,统一设定其显示0,例如需要显示1时,八个数码管的显示为00000001。
2.3.2 数码管显示部分部分程序如下: …………
variable a,b,c,k,e,f,g,h:integer range 0 to 9;begin a:=di rem 10;7 b:=(di-a)rem 100;c:=(di-a-10*b)rem 1000;k:=(di-a-10*b-c*100)rem 10000;e:=(di-a-10*b-c*100)rem 100000;f:=(di-a-10*b-c*100-1000*e)rem 1000000;g:=(di-a-10*b-c*100-1000*e-10000*f)rem 10000000;h:=(di-a-10*b-c*100-1000*e-10000*f-100000*g)/10000000;ai<=a;bi<=b;ci<=c;ki<=k;ei<=e;fi<=f;gi<=g;hi<=h;end process;process(ai)begin case ai is
when 0=>led7s1(6 downto 0)<=“1000000”;
when 1=>led7s1(6 downto 0)<=“1111001”;
when 2=>led7s1(6 downto 0)<=“0100100”;
when 3=>led7s1(6 downto 0)<=“0110000”;
when 4=>led7s1(6 downto 0)<=“0011001”;8
when 5=>led7s1(6 downto 0)<=“0010010”;
when 6=>led7s1(6 downto 0)<=“0000010”;
when 7=>led7s1(6 downto 0)<=“1111000”;
when 8=>led7s1(6 downto 0)<=“0000000”;
when 9=>led7s1(6 downto 0)<=“0010000”;
when others=>led7s1(6 downto 0)<=“XXXXXXX”;end case;end process;…………
2.3.3 数码管显示部分引脚图
数码管显示部分部分引脚图如图2 所示
图 2 数码管显示部分部分引脚图
2.2.4 总体设计程序见附表1 3 仿真显示
3.1 显示“000000003”仿真图
显示数字“3”的仿真图如图3所示,因为根据程序所需数码管为共阳极数码管,所以数码管对应的“e”,“f”段应该为高电平,在本次设计中,即数码管的第5,6段为高电平,为了便于观察,仿真的各项周期均取10ns。
图3 显示“3”电路 3.2 显示“96”部分仿真图,如图4所示
图4 显示“96”仿真图 心得体会
通过这次的课程设计让我对VHDL语言以及电路设计的理论有了更加深入的了解,课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,这次课程设计虽然很累,但我学到了不少东西,对软件的设计过程和方法有了更深入的了解。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。
这次课程设计顺利完成了,在设计中遇到了很多问题,最后都是经过查阅相关的资料和在同学的帮助下,终于游逆而解。同时,在我学得到很多实用的知识,同时,对给过我帮助的所有同学再次表示忠心的感谢!
参考文献
【1】黄继业.EDA技术使用教程[M].北京:科学出版社,2010 【2】王云亮.电力电子技术[M].北京:电子工业出版社,2009 【3】康光华.电子技术基础[M].北京:高等教育出版社,2006
附录1 library ieee;12 use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity look is port(d:in std_logic_vector(26 downto 0);clk3:in std_logic;led7s1,led7s2,led7s3,led7s4,led7s5,led7s6,led7s7,led7s8:out std_logic_vector(6 downto 0));end;architecture one of look is signal ai,bi,ci,ki,ei,fi,gi,hi:integer range 0 to 9;signal di:integer range 0 to 99999999;begin di<=conv_integer(d);
process(di)variable a,b,c,k,e,f,g,h:integer range 0 to 9;begin a:=di rem 10;b:=(di-a)rem 100;c:=(di-a-10*b)rem 1000;k:=(di-a-10*b-c*100)rem 10000;e:=(di-a-10*b-c*100-k*1000)rem 100000;f:=(di-a-10*b-c*100-k*1000-10000*e)rem 1000000;g:=(di-a-10*b-c*100-k*1000-10000*e-100000*f)rem 10000000;h:=(di-a-10*b-c*100-k*1000-10000*e-100000*f-1000000*g)/10000000;ai<=a;bi<=b;ci<=c;ki<=k;ei<=e;fi<=f;gi<=g;hi<=h;end process;process(ai)begin case ai is
when 0=>led7s1(6 downto 0)<=“1000000”;
when 1=>led7s1(6 downto 0)<=“1111001”;13
when 2=>led7s1(6 downto 0)<=“0100100”;
when 3=>led7s1(6 downto 0)<=“0110000”;
when 4=>led7s1(6 downto 0)<=“0011001”;
when 5=>led7s1(6 downto 0)<=“0010010”;
when 6=>led7s1(6 downto 0)<=“0000010”;
when 7=>led7s1(6 downto 0)<=“1111000”;
when 8=>led7s1(6 downto 0)<=“0000000”;
when 9=>led7s1(6 downto 0)<=“0010000”;
when others=>led7s1(6 downto 0)<=“XXXXXXX”;end case;end process;process(bi)begin case bi is
when 0=>led7s2(6 downto 0)<=“1000000”;
when 1=>led7s2(6 downto 0)<=“1111001”;
when 2=>led7s2(6 downto 0)<=“0100100”;
when 3=>led7s2(6 downto 0)<=“0110000”;
when 4=>led7s2(6 downto 0)<=“0011001”;
when 5=>led7s2(6 downto 0)<=“0010010”;
when 6=>led7s2(6 downto 0)<=“0000010”;
when 7=>led7s2(6 downto 0)<=“1111000”;
when 8=>led7s2(6 downto 0)<=“0000000”;
when 9=>led7s2(6 downto 0)<=“0010000”;
when others=>led7s2(6 downto 0)<=“XXXXXXX”;end case;end process;process(ci)begin case ci is
when 0=>led7s3(6 downto 0)<=“1000000”;
when 1=>led7s3(6 downto 0)<=“1111001”;
when 2=>led7s3(6 downto 0)<=“0100100”;
when 3=>led7s3(6 downto 0)<=“0110000”;
when 4=>led7s3(6 downto 0)<=“0011001”;
when 5=>led7s3(6 downto 0)<=“0010010”;
when 6=>led7s3(6 downto 0)<=“0000010”;14
when 7=>led7s3(6 downto 0)<=“1111000”;
when 8=>led7s3(6 downto 0)<=“0000000”;
when 9=>led7s3(6 downto 0)<=“0010000”;
when others=>led7s3(6 downto 0)<=“XXXXXXX”;end case;end process;process(ki)begin case ki is
when 0=>led7s4(6 downto 0)<=“1000000”;
when 1=>led7s4(6 downto 0)<=“1111001”;
when 2=>led7s4(6 downto 0)<=“0100100”;
when 3=>led7s4(6 downto 0)<=“0110000”;
when 4=>led7s4(6 downto 0)<=“0011001”;
when 5=>led7s4(6 downto 0)<=“0010010”;
when 6=>led7s4(6 downto 0)<=“0000010”;
when 7=>led7s4(6 downto 0)<=“1111000”;
when 8=>led7s4(6 downto 0)<=“0000000”;
when 9=>led7s4(6 downto 0)<=“0010000”;
when others=>led7s4(6 downto 0)<=“XXXXXXX”;end case;end process;process(ei)begin case ei is
when 0=>led7s5(6 downto 0)<=“1000000”;
when 1=>led7s5(6 downto 0)<=“1111001”;
when 2=>led7s5(6 downto 0)<=“0100100”;
when 3=>led7s5(6 downto 0)<=“0110000”;
when 4=>led7s5(6 downto 0)<=“0011001”;
when 5=>led7s5(6 downto 0)<=“0010010”;
when 6=>led7s5(6 downto 0)<=“0000010”;
when 7=>led7s5(6 downto 0)<=“1111000”;
when 8=>led7s5(6 downto 0)<=“0000000”;
when 9=>led7s5(6 downto 0)<=“0010000”;
when others=>led7s5(6 downto 0)<=“XXXXXXX”;end case;15 end process;process(fi)begin case fi is
when 0=>led7s6(6 downto 0)<=“1000000”;
when 1=>led7s6(6 downto 0)<=“1111001”;
when 2=>led7s6(6 downto 0)<=“0100100”;
when 3=>led7s6(6 downto 0)<=“0110000”;
when 4=>led7s6(6 downto 0)<=“0011001”;
when 5=>led7s6(6 downto 0)<=“0010010”;
when 6=>led7s6(6 downto 0)<=“0000010”;
when 7=>led7s6(6 downto 0)<=“1111000”;
when 8=>led7s6(6 downto 0)<=“0000000”;
when 9=>led7s6(6 downto 0)<=“0010000”;
when others=>led7s6(6 downto 0)<=“XXXXXXX”;end case;end process;process(gi)begin case gi is
when 0=>led7s7(6 downto 0)<=“1000000”;
when 1=>led7s7(6 downto 0)<=“1111001”;
when 2=>led7s7(6 downto 0)<=“0100100”;
when 3=>led7s7(6 downto 0)<=“0110000”;
when 4=>led7s7(6 downto 0)<=“0011001”;
when 5=>led7s7(6 downto 0)<=“0010010”;
when 6=>led7s7(6 downto 0)<=“0000010”;
when 7=>led7s7(6 downto 0)<=“1111000”;
when 8=>led7s7(6 downto 0)<=“0000000”;
when 9=>led7s7(6 downto 0)<=“0010000”;
when others=>led7s7(6 downto 0)<=“XXXXXXX”;end case;end process;process(hi)begin case hi is
when 0=>led7s8(6 downto 0)<=“1000000”;16
when 1=>led7s8(6 downto 0)<=“1111001”;
when 2=>led7s8(6 downto 0)<=“0100100”;
when 3=>led7s8(6 downto 0)<=“0110000”;
when 4=>led7s8(6 downto 0)<=“0011001”;
when 5=>led7s8(6 downto 0)<=“0010010”;
when 6=>led7s8(6 downto 0)<=“0000010”;
when 7=>led7s8(6 downto 0)<=“1111000”;
when 8=>led7s8(6 downto 0)<=“0000000”;
when 9=>led7s8(6 downto 0)<=“0010000”;
when others=>led7s8(6 downto 0)<=“XXXXXXX”;end case;end process;end;
第五篇:高中信息技术_二进制十进制转换教案
二进制十进制转换教案
班级:20111411 学号:2011141150 姓名:李瑶
【教学目的与要求】
1、熟悉数制的概念;
2、掌握位权表示法;
3、熟练掌握各数制之间的转换方法。
【课时安排】 1课时。
【教学重点与难点】
1、难点:位权表示法 十进制转化为二进制
2、重点:
二、十进制间相互转换
【学习者分析】 教材上这一部分写的比较简单但也比较抽象,以高一学生现在的认知结构还不是很容易理解,而且直接引入什么“按权相加”的方法,学生必定听得一头雾水。因此,本课时由浅入深,首先给出这些概念以帮助学生更好地理解和接受、消化吸收本节课的知识。
【教学过程】(以下教师的语言、活动简称“师”,学生的活动简称“生”)
(一)数制 6分钟
师: 同学们,大家回想一下,我们最早学习的数学运算是什么?
生:加法。加减乘除„„
师:对,我们最开始学习的就是十以内的加法,之后是两位数的加法,在两位数加法的学习中,老师是不是经常会说,要注意逢十进一?也就是我们平常说的别忘了进位。像这样按进位的原则进行记数的方法叫做进位记数制。“进位记数制”简称为“数制”或“进制”。我们平时用的最多的就是十进制了,那么,大家想一下,还有没有其他的进制呢?比如说,小时、分钟、秒之间是怎么换算的?
生: 一小时等于60分钟,一分钟等于60秒。
师: 那我们平时会不会说我做这件事情用了102分钟呢?不是吧?我们一般会说,我花了一个小时零42分钟,也就是说逢六十进一,这就是60进制。由此也可以推断出,每一种数制的进位都遵循一个规则,那就是——逢N进1。这里的N叫做基数。所谓“基数”就是数制中表示数值所需要的数字字符的总数,比如,十进制中用0——9来表示数值,一共有10个不同的字符,那么,10就是十进制的基数,表示逢十进一。下面我们再引入一个新概念——“位权”。什么是位权呢?大家看一下这个十进制数,1111.111,那么,这其中的7个1是不是完全一样呢?
生:不一样。
师:那么他们有什么不同呢? 生: 第一个1表示1000,第二个1表示100,„„
1-2
-3 师:很好。大家看一下,1000=10,100=10,10=10,1=10,0.1=10,0.01=10,0.001=10。这就叫做位权,也就是基数的若干次幂。那么,这个“若干次”有是多少呢?有没有什么规定呢?大家观察一下这个例子,以小数点为界,整数部分自右向左,依次是基数的0次、1次、2次、3次幂。小数部分,自左向右,分别是基数的-1次、-2次、-3次幂。大家再看一下,2856.42这个十进制数,它的值是怎么算出来的呢?这里的2表示2000,即2 *10,8表示800,即8 *10,同样的,5代表50,即5 * 10,6代表6,即6 * 10。2000+800+50+6+0.4+0.02=2856.42,这就叫做按权相加法。也就是让每一位上的数字字符乘以它所代表的权。那么,这种方法有什么用呢?这就是本节课的重点内容。0
321(二)数制转换 20分钟
大家都知道,计算机中采用的是二进制,但用计算机解决实际问题时对数值的输入输出通常使用十进制,这就有一个十进制向二进制转换或由二进制向十进制转换的过程。也就是说,在使用计算机进行数据处理时首先必须把输入的十进制数转换成计算机所能接受的二进制数;计算机在运行结束后,再把二进制数转换为人们所习惯的十进制数输出。这种将数由一种数制转换成另一种数制称为数制间的转换。
这节课我们主要来讲一下二进制——十进制之间的转换。下面我们结合实例来讲解一下。
1、二进制数转换成十进制数
把二进制数转换成十进制数就是用“按权相加”法,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。
例 把二进制数110.11转换成十进制数。
这个比较简单,也容易掌握,我们就不做练习了,下面我们重点看一下十进制转换成二进制。
2、十进制数转换为二进制数
大家看一下前面我们讲的按权相加法中,权的值在小数点左边和小数点右边是不一样的。所以,十进制数转换为二进制数时,整数和小数的转换方法也不同,一般我们先把十进制数的整数部分和小数部分分别转换后,再加以合并。我们先来讲一下转换的方法,再结合实例来看一下。
(1)十进制整数转换为二进制整数
十进制整数转换为二进制整数采用“除2取余,逆序排列”法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把所有余数按逆序排列,也就是把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。这就是所谓“除2取余,逆序排列”。
(2)十进制小数转换为二进制小数
十进制小数转换成二进制小数采用“乘2取整,顺序排列”法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
例 将一个十进制数35.375转换为二进制数。
最后得到转换结果:(35.375)10=(100011.011)2
大家要好好记住这一点,整数部分是将所得的余数逆序排列,而小数部分则要将所提出来的积的整数按顺序排列。
好了,我们这节课要讲的主要内容就是这些了,下面,我们来就这些内容做一些练习,看看大家掌握的怎么样了。
(三)练习7分钟
1、(1010101.1011)2=()10
6420
3-4 解:(1010101.1011)2=2+2+2+2+2+2+2=64+16+4+1+0.5+0.125+0.0625=85.6875
2、(105.625)10 =()2
解:
(四)小结 2分钟
本节课我们主要讲了数制的概念以及二——十进制转换,这节课的难点就是要理解位权的概念。重点掌握的内容当然这二进制和十进制之间的相互转换方法,下面我们来一起回顾一下,二进制转化成十进制用的是——(生)“按权相加法”。十进制转化成二进制既是重点也是难点,不大容易掌握,大家下去要认真思考一下,看能不能用自己的话把这些规则表达出来,成为自己的东西。十进制转化成二进制,整数部分是——(师生)“除2取余,逆序排列”,小数部分是——(师生)“乘2取整,顺序排列”。
好了,这节课就上到这里吧。希望大家下去以后把这几道题做一下,巩固一下本节课所讲的内容。
(五)作业
1、将下列数字用按权相加法展开
-1(568.3)10 = 5×10 + 6×10+ 8×10 +3× 10
0
-1(101.1)2 = 1×2 + 0×2+ 1×2 + 1×2
2、二进制数转换成十进制数
(101.1)2 = 1×2 + 0×2 + 1×2 + 1× 2 =(5.5)10 十进制 转换成二进制数 21
0
-1(173.8125)10=(10101101.1101)2