• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 71,  comments - 41,  trackbacks - 0
            ? 2003 by Charles C. Lin. All rights reserved.

            A Problem

            Suppose you have N different items. You wish to assign each item a unique k bit number, so you can refer to each of them by number, but you want to use as few bits as possible. That is, how small can you make k?

            To answer this question, it's useful to think of it from the other side. Suppose you are given k bits. How many different labels could you create?

            With k bits, there are 2k different bitstring patterns. Thus, there are 2k different labels.

            For example, if you have 3 bits, there are 8 possible bitstrings: 000, 001, 010, 011, 100, 101, 110, and 110. Therefore, you can label up to 8 different items with a unique 3 bit value.

            Suppose you wanted to identify 9 different items. 3 bits isn't enough. 4 bits is too many. With 4 bits, you can label 16 different items.

            Nevertheless, you need to use 4 bits. Thus, if you have to label N items with a unique k bit bitstring, and you want to minimize k, then you need to solve:

               N = 2k
            N is fixed. That is, you are specifying N. You want to find out k, realizing that with k bits, there are 2k possible bitstrings.

            To solve the formular, you take log base 2 of both sides. We use lg to represent log base 2.

               lg N = k
            
            Since lg N can be a fraction, and k must be an integer (we can't have fractional bits), then we need to round up.

            So,

               k = ceil( lg N )
            
            the minimum number of bits is the ceiling of lg N which we write as ceil( lg N ).

            So What?

            You might wonder why we care about labelling N different items with as few bits as possible.

            In hardware, everything is basically 0's and 1's. For example suppose you have 16 registers, and you want to select one of them. How would you do it? The sensible way to do it is to give each register a unique k-bit bitstring.

            Using the formula from the last section, we realize that you need ceil( lg 16 ) = 4. You need 4 bits to identify one of 16 different registers.

            You find this happening throughout hardware. You want to identify one of N things, and so you need to use ceil( lg N ) bits to do so.

            posted on 2007-01-23 15:30 Charles 閱讀(128) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            <2007年12月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            決定開始寫工作日記,記錄一下自己的軌跡...

            常用鏈接

            留言簿(4)

            隨筆分類(70)

            隨筆檔案(71)

            charles推薦訪問

            搜索

            •  

            積分與排名

            • 積分 - 50470
            • 排名 - 449

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久丫精品国产亚洲av| 精品久久久久久无码中文野结衣| 日韩欧美亚洲综合久久影院Ds| 日本免费久久久久久久网站| 国产香蕉97碰碰久久人人| 无码8090精品久久一区| 久久av无码专区亚洲av桃花岛| www久久久天天com| 色偷偷88欧美精品久久久| 久久婷婷激情综合色综合俺也去| 久久精品国产精品亚洲精品| 人妻系列无码专区久久五月天| 久久久久免费看成人影片| 久久亚洲国产成人影院网站| 日本五月天婷久久网站| 精品久久久久久国产三级| 人妻无码αv中文字幕久久| 久久久黄片| 国产AV影片久久久久久| 亚洲午夜久久久久久久久电影网| 中文字幕亚洲综合久久| 久久精品国产第一区二区三区 | 7国产欧美日韩综合天堂中文久久久久 | 久久久高清免费视频| 欧美伊香蕉久久综合类网站| 久久久久久久久久久| 久久亚洲中文字幕精品一区四 | 国产精品久久久久影视不卡| 亚洲色欲久久久综合网| 精品久久久久久久久免费影院| 精品久久久无码中文字幕天天| 国内精品伊人久久久久AV影院| 伊人久久无码中文字幕| 久久亚洲国产最新网站| 欧美久久亚洲精品| 久久久久国产精品麻豆AR影院| 久久精品视频免费| 欧美777精品久久久久网| 久久久久一区二区三区| 亚洲国产天堂久久综合网站| 91超碰碰碰碰久久久久久综合|