1 整数计算

2017-10-17  本文已影响0人  张超_83a8

例如 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

十进制中依赖 个位,百位,千位... 的位置 “位置记法”  表示一个整数的规则 

 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

1.1

十进制系统中数十作为基底

七进制基地7  Bn*7^n  +  Bn-1*7^n-1 + ... + B1*7 + B0

十进制 109 在七进制中 用 214表示 214 = 2*7^2 + 1*7 +4 如图 1.2 

  进制转换: 从以十为基底变成任何其他基地B的一般规则,用B连续除以十为基底的整数Z,所得的余数将是以B为基底的系统中的数码 

1.2

十进制转换各种进制

七进制 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

上一篇下一篇

猜你喜欢

热点阅读