当前位置:首页 > 单片机教案(培训打印)
=16×1+1×1=17
1F3DH=163×1+162×15+161×3+160×13 =4096×1+256×15+16×3+1×13 =4096+3840+48+13=7997 十进制数到十六进制数的转换
十进制整数转换为十六进制数可用除16取余法,即用16不断地去除待转换的十进制数,直至商等于0为止。将所得的各次余数,依倒叙排列,即可得到所转换的十六进制数。如将38947转换为十六进制数,其方法及算式如下:
38947=9 8 2 3H
1.机器数与真值
机器数:机器中数的表示形式,它将数的正、负符号和数值部分一起进行二进制编码,其位数通常为8的整数倍。
真值:机器数所代表的实际数值的正负和大小,是人们习惯表示的数。
有符号数:最高位为符号位。“0”表示正,“1”表示负
9
无符号数:最高位不作为符号位,而作为数值位。 2、数的单位
位(bit):一个二进制数中的1位,其值不是1便是0。 字节(Byte):一个字节,就是一个8位的二进制数。 字(Word):两个字节,就是一个16位的二进制数。 双字(Double Word) :两个字,即四个字节,一个32位二进制数。
只有8位、16位或32位机器数的最高位才是符号位。 有符号数有原码、反码和补码三种表示法。 1.原码
数值部分用其绝对值,正数的符号位用“0”表示,负数的符号位用“1”表示。如:
X1=+5=+00000101B [X1]原=00000101B X2=-5=-00000101B [X2]原=10000101B 8位原码数的范围为FFH~7FH(-127~127)。原码数00H和80H的数值部分相同、符号位相反,它们分别为+0和-0。
16位原码数的数值范围为FFFFH~7FFFH(-32767~32767)。原码数0000H和8000H的数值部分相同、符号位相反,它们分别
10
为+0和-0。
原码表示简单易懂,而且与真值的转换方便。但若是两个异号数相加,或两个同号数相减,就要做减法。为了把减运算转换为加运算,从而简化计算机的结构,就引进了反码和补码。
(2)反码
正数的反码与原码相同;负数反码:符号位不 变,数值部分按位取反。
例 求8位反码机器数:
x1= +4 [x1]原= 00000100B [x1]反= 00000100B=04H x2= -4 [x2]原= 10000100B [x2]反= 11111011B = FBH (3)补码
正数的补码与原码相同;负数补码为其反码加1。 例:求 8位补码机器数:
x1=+4: [x1]原=[x1]反=[x1]补= 00000100=04H x2= - 4: [x2]原 = 10000100 [x2]反 = 11111011 [x2]补 = [x2] 反+1= 1111100=FCH
8位补码数的数值范围为-128~127(80H~7FH)。16位补码数的数值范围为8000H~7FFFH(-32768~32767)。字节80H和字
11
8000H的真值分别是-128(-80H)和-32768(-8000H)。补码数80H和8000H的最高位既代表了符号为负,又代表了数值为1。
快速求法:将负数原码的最前面的1和最后一个1之间的每一位取反。例如
x=-4: [x]原 = 10000100 [x]补 = 11111100=FCH取反 ② 两数互补是针对一定的“模”而言,“模”即计数系统的过量程回零值,例如时钟以12为模(12点也称0点),4和8互补,一位十进制数3和7互补(因为3+7=10,个位回零,模为101=10 ),两位十进制数35和65互补(因为35+67=100,十进制数两位回零,模为102=100),而对于8位二进制数,模为28=100000000B=100H,同理16位二进制数,模为216=10000H由此得出求补的通用方法:一个数的补数=模-该数,这里补数是对任意的数而言,包括正、负数。而补码是针对符号机器数而言。
设有原码机器数X, X>0, [X]补=[X]原 当 X<0, [X]补= 模-|X| 例如对于八位二进制数:
x1=+4: [x1]补= 00000100B=04H;
12
共分享92篇相关文档