zoukankan      html  css  js  c++  java
  • 关于进制介绍

    1.     李开复在一个节目中出的题

    某珠宝商,有31颗明月珍珠,此商人呢,把珍珠分成了若干盒,每盒的珠子数量都不一样
    分完后,发现特别的巧,你想买1-31颗之间的珠子,此商人,都能正好取出其中的若干盒,正好能组成你想要的
    买的珠子数量。分成了几盒?每盒又各是多少颗珠子呢?

    分析:
    计算机中,有一门很重要的课,叫信息论
    一种东西,他的状态,能用来标识信息
    比如:一只眼睛,能闭,能睁
    想用来表示心情,最多能表示几种?
    答:2种,因为眼睛只有2种,“态位”

    如果有2只眼睛,每只眼睛都能睁,能闭
    组合起来,就能表示4种心情

    比如:
    左开右开
    左开右闭
    左闭右开
    左闭右闭

    正好取出其中若干盒
    那么每盒有几种状态?
    答:2种,要么取,要么不取。
    一个盒,就能表示两种‘态位’;
    不妨标记为取1,不取0,又能组成1-31之间
    连续的数字,因此,只能按2二进制
    [1/0][1/0][1/0][1/0][1/0]

    如用二进制的知识来分析

    左数第一盒,权值 1
    左数第二盒 ,权值2
    左数第三盒 ,权值4
    左数第四盒,权值 8
    左数第五盒 ,权值16
    17 = 10001 ,取第5盒+第1盒
    29 = 11101 ,取5,4,3,1
    22 = 10110,  取5,3,2

    2.    8瓶水,1瓶有毒,死小老鼠,需要2小时时间,只给你2小时间,问:最少,需要几只老鼠?

      答:分析:毒死需要2个小间,只给2个小时,---->只能试一次
    2小时后,小白鼠,只有2种状态:死、活
    2只小白鼠,则有4种组合的状态
    N只小白鼠,则有2^N次组合的状态
    一共只有8瓶药水,最多需要8种状态,就能区分。
    3只老鼠,组合8种状态

    因此,从理论上说,3只老鼠足够了。
    但3只老鼠如何试出来,自己用二进制的知识一组合一下。
    活用1,死用0
    [1/0][1/0][1/0]
    000 ------1
    001 ------2
    010 ------3
    011 ------4
    100 ------5
    101 ------6
    110 ------7
    111 ------8

    3.  有个商人不小心把40磅的砝码摔碎了,摔成了4块,欲哭无泪时发现这4块砝码恰好可以组合成1-40的任意重量,求这4块碎砝码的质量?提示:组合就不是单纯相加,因为天平,你懂的?如:2=3-1

    答: N块砝码, 一个天平
    某一砝码可以放在左边,也可以放右边,也可以不放。
    一个砝码,表示 3种态位
    可标识: 0 1 2
    [0/1/2][0/1/2][0/1/2][0/1/2]
    想表示出连续的数字来,
    然后,每个位上的权值,也要符合3进制的规律
    权值: 1,3,9,27
    1---->1
    2---->3-1
    3---->3
    5---->9-1-3
    6---->9-3
    7---->9-3+1
    8---->9-1
    9---->9
    10--->9+1
    11--->9-1+3
    12--->9+3
    13--->9+1+3


    4.   日常生活  数数
    1 2 3 5 6 7 8
    10
    [左数第2位的一,代表10个]  30
    [左数第2位,1值代表10]
    1---->1
    10--->1代表10
    100-->1代表100
    用术语来说:在不同的位置上,发挥的“重量”,叫"权值"

    以10进制为例
    1234 = 1000 +200 +30 +4

    因为
    从右往左数第四位的1 ,权值是1000,即以1顶1000,基数又是1,因此顶1000
    从右往左数第三位的2 ,权值是100, 即以1顶100, 基数又是2,因此顶200
    从右往左数第二位的3 ,权值是10,  即以1顶10,  基数又是3,因此顶30
    从右往左数第一位的4 ,权值是1,   即以1顶1,   基数又是4,因此顶4

    继续归纳:
    从右往左数第1位,权植是1,10^0,10的0次方
    从右往左数第2位,权植是10,10^1,10的1次方
    从右往左数第3位,权植是100,10^2,10的2次方
    从右往左数第4位,权植是1000,10^3,10的3次方

    那么同学回答:
    (abcdef)10  ,即10进制的abcedf的值是多少?
    f*10^0 + e*10^1 + d*10^2 + c*10^3 +b*10^4 +a*10^5

    归纳:在10进制中,基数 0 1 2 3 4 5 6 7 8 9

    在10进制中,基数最大是9,因为到10,就把基数1进到第2位,来表示了。
    扩展:在M进制中,基数的最大值是M-1

    来个8进制练练
    (abcd)8,即8进制的(1234)8值是多少?
    往左数第1位,权值是8^1,基数*权值= 4 * 8^0
    往左数第2位,权值是8^2,基数*权值= 3 * 8^1
    往左数第3位,权值是8^3,基数*权值= 2 * 8^2
    往左数第4位,权值是8^4,基数*权值= 1 * 8^3

    计算出来,对应10进制是:
    4*1 + 3*8 + 2*64 + 1+512 =668;

     代码展示如下:

     1 echo 1234,'<br />';
     2 echo 01234,'<br />';
     3 ////
     4 //在下面的列子中
     5 //前面加0代表8进制
     6 //
     7 //而8进制中,基数最大为7
     8 //现在出了一个9,自然就是‘违法的’
     9 //碰到 这种情况,php就会从9开始,把后面的值舍弃。
    10 //
    11 //echo 02399999,'<br />';
    12 //看一看16进制
    13 //碰到16才进位,0-15都是单个的基数来表示
    14 //
    15 //0----------------------------15
    16 //0 1 2 3 4 5 6 7 8 9 a,b,c,d,e,f 
    17 //
    18 //(ab)16
    19 //往左数第1位,权值是16^0,基数是b,值是b*16^0
    20 //往左数第2位,权值是16^1,基数是a,值是a*16^1
    21 
    22 //因此 == b * 16^0 +a*16^1
    23 //(24)16 = 4*16^0 + 2*16^1=36
    24 
    25 
    26 //如何告诉计算机这是16进制呢?
    27 //在前面加0x 
    28 $age = 0x1c;
    29 echo $age;

    32 //程序员的冷笑话 33 //程序员分不清,圣诞节,和万圣节 34 // 35 //圣诞节: 12月25日 36 //万圣夜: 10月31日 37 38 //在英语里,常常这么缩写进制 39 40 //binary : 二进制 10010100B 41 //decimal:十进制 148D 42 //octconary: 八进制 224O 43 //hexadecimal: 十六进制 94H 44 // 45 //在程序员眼里 46 //dec25 --->10进制25 47 //oct31 --->8进制31 48 // 49 //(25)10 = (31)8 50 51 //二进制 ,自然基数只能是1,0两个 52 // 53 //1101 ===> 54 //从左到右 代表 55 //1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 = 1+0+4+8=13 56 //如何在php中表示二进制 57 //在php5.4中,已经开始引进二进制的直接表示 58 echo PHP_VERSION; 显示php的版本

    相关视频连接如下:

    燕十八-PHP公益培训-YY直播-018-进制详解



    /** 燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it **/
  • 相关阅读:
    WINFORM 設計時 未能加载文件或程序集問題解決
    Remove row from generic datatable in C#(The given DataRow is not in the current DataRowCollection)
    questa.sim in the linux
    the io_printf
    how to search new file in linux
    the rld control core
    window's chkdsk
    tq
    the init state machine
    brazen out
  • 原文地址:https://www.cnblogs.com/lgs198712/p/2909960.html
Copyright © 2011-2022 走看看