美文网首页
1 整数计算

1 整数计算

作者: 张超_83a8 | 来源:发表于2017-10-17 18:41 被阅读0次

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

    相关文章

      网友评论

          本文标题:1 整数计算

          本文链接:https://www.haomeiwen.com/subject/tutgyxtx.html