例如 a=10 ,我们需要给出十个数字给出名称,在加上10,100,1000这个三个 共13个 1.1 五个算数基本规律
交换律 a+b = b+a 和 a*b=b*a
加分结合律 a+(b+c) = (a+b)+c
乘法结合律 (a*b)*c = a*(b*c)
分配律 a*(b+c) = a*b + a*c
不等关系 a<b 和 b>a 当a加上适当选择c 得出 b=a+c c=b-a
负整数 当b<a 时 b-a 为负整数
互逆运算 如果整数a加整数b再减去b结果还是a : (a+b)-b =a
1.2 整数的表示
正整数十进制的表示 372 = 3*10^2 + 7*10^1 + 2
1.1十进制中依赖 个位,百位,千位... 的位置 “位置记法” 表示一个整数的规则
z= a*10^3 + b*10^2 +c*10+d (abcd是零到九的整数)
整数z是 系数d,c,b,a 被10除后的余数 如图 1.1
公式: z = An * 10^n + An-1 * 10^n-1 + ... + A1*10 + A0
十进制系统中数十作为基底
七进制基地7 Bn*7^n + Bn-1*7^n-1 + ... + B1*7 + B0
十进制 109 在七进制中 用 214表示 214 = 2*7^2 + 1*7 +4 如图 1.2
1.2进制转换: 从以十为基底变成任何其他基地B的一般规则,用B连续除以十为基底的整数Z,所得的余数将是以B为基底的系统中的数码
十进制转换各种进制
七进制 109 = 109除7余数 = 214(总左到右,余数从下到上) 转回十进制 2*7^2 + 1*7 + 4 = 98 + 7 + 4 = 109
二进制 109
109/2=54 1
54/2=27 0
27/2=13 1
13/2=6 1
6/2=3 0
3/2=1 1
1/2=0 1
余数的顺序 101 1011 余数从下到上(高位补0)就是二进制 01101101
二进制转换为十进制参考七进制转回十进制
负数二进制转换 首位是 1 ,故是负数
补码: 反码加1称为补码
-109 二进制为 01101101 反码+补码 = 10010010 + 1 = 10010011
-109 二进制转回十进制 反码+1 = 0110 1100 + 1 = 01101101
二进制为什么需要补码
二进制计算
8位正数表示范围: 0000 0000 ~ 1111 1111 (0 ~ 255 )
8位二进制数高位用1表示负 0表示正数
负数: 1 111 1111 ~ 1 000 0000 ( -127 ~ -0 )
正数: 0 000 000 ~ 0 111 1111( 0 ~ 127(128-1) )
非补码 1 + -1 = 0000 0001 + 1000 0001 = 1000 0010 = -2 (结果肯定是不对的)
为确保正确引入补码方式(反码+1)
原: -1 = 1000 0001 补码后 1111 1110 +1 = 1111 1111
再次计算 1 + -1 = 0000 0001 +1111 1111 = 1 0000 0000
8位二进制高位舍去 = 0000 0000
补码计算
正数: 原码和补码一致
负数: 原码取反然后加1
1.3.非十进位制中的计算
如:日期 年365/366 月 28/30/29/31 时间 1分=60秒 一天=24小时 1小时=60分钟
忘记十进制下面做练习题
1) 已 5, 11 为基地表示十进制 30 和 133
5 进制 表示 30/5=6 余0 6/5 =1 余1 1/5=1 余1 最终= 110
5进制转回十进制 110 = 1*5^2+1*5^1+0*5^0= 30
5 进制 表示 133/5=26 余3 26/5=5 余1 5/5=1 余0 1/5=0 余1 最终= 1013
5进制转回十进制 1013 = 1*5^3 + 0*5^2 + 1*5^1 +3 = 125+5+3 = 133
11进制表示 30/11= 2 余8 2/11=0 余 2 最终 = 28
11进制转回十进制 28 = 2*11^1+8 = 22+8 = 30
11进制表示 133/11=12 余1 12/11=1 余1 1/11 = 0 余1 最终= 111
11进制转回十进制 111 = 1*11^2+11+1 = 121+11+1 = 133
2) 11111 在 5,11 为基地 十进制是什么
5进制 11111 = 1*5^4 + 1*5^3 + 1*5^2+ 1*5^1+ 1 = 625+125+25+5+1= 781
11进制 11111 = 1*11^4 + 1*11^3 + 1*11^2+ 1*11^1+ 1 = ? (自己算吧)
3) 2进制中 111 * 101 等于几? (1+1=0 进一位)
111
101
------------------
1 1 1
1 1 1
-------------
100011
习题:考虑以a为基底表示整数的问题,为了在这个系统中叫出一个数的名字,我们需要对数字0,1 ... a -1 和 a的各幂次: a,a^2,a^3 .. a^n 给出数字的名称,对 a=2,3,....15 ,若给零到一千的数字起名字,需要多少个不同的数字名称,哪一种基底要求的数字名称最少?
例如 a=10 ,我们需要给出十个数字给出名称,在加上10,100,1000这个三个 共13个
例如 a=20 ,我们需要给出二十个数字给出名称,在加上20,400 这个两个 共22个
例如 a=100 ,我们需要给出100个数字给出名称,在加上1 个 共101个
解:
基底 a
a=2 0,1,2,2^2,2^3..... 2^9 11
a=3 0,1,3,3^2,3^3 ... 3^7 9
a=4 0,1,2,3,4,4^2...4^5 8
a=5 0,1,2,3,4,5,5^2...5^4 9
a=.....
下面自己算吧,最终 基地为4最少
END
网友评论