• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      用Scratch把十進制轉(zhuǎn)為二進制

      2020-06-30 14:32:37陳新龍
      電腦報 2020年18期
      關(guān)鍵詞:逆序二進制整數(shù)

      陳新龍

      600,3/5,-7.99……這些數(shù)字都是十進制數(shù),因為人有十根手指頭,所以最常用的是十進制。十進制就是滿十進一,滿二十進二,以此類推……十進制數(shù)字按權(quán)展開,第一位權(quán)為10^0,第二位權(quán)為10^1……以此類推,第N位按權(quán)展開10^(N-1),該數(shù)的數(shù)值等于每位的數(shù)值乘該位對應(yīng)的權(quán)值之和。

      在計算機的世界里除了十進制之外,常用的還有二進制、八進制、十六進制,今天我們就來講一講這個二進制。

      二進制(binary)在數(shù)學(xué)和數(shù)字電路中指以2為基數(shù)的記數(shù)系統(tǒng)。這一系統(tǒng)中,通常用符號0和1來表示。數(shù)字電子電路中的高電位和低電位剛好符合二進制,因此現(xiàn)代的計算機和依賴計算機的設(shè)備中都用到二進制。每個數(shù)字稱為一個比特(BIT,Binary digit)。

      那么日常使用的十進制數(shù)是怎樣轉(zhuǎn)換成計算機使用的二進制數(shù)呢?

      我們先看一下0-10的二進制轉(zhuǎn)化十進制的對照表

      例如:十進制10=二進制1010

      按權(quán)展開:

      1*2^3+0*2^2+1*2^1+0*2^0=10

      例如:十進制9=二進制1001

      按權(quán)展開:

      1*2^3+0*2^2+0*2^1+1*2^0=9

      初步知道了十進制和二進制的關(guān)系后,我們思考一下如何將十進制轉(zhuǎn)化為二進制呢?大家可以去網(wǎng)上查閱一下。

      十進制整數(shù)轉(zhuǎn)換為二進制整數(shù):十進制整數(shù)轉(zhuǎn)換為二進制整數(shù)采用“除2取余,逆序排列”法。用2整除十進制整數(shù),可以得到一個商和余數(shù);再用2去除商,又會得到一個商和余數(shù),如此重復(fù),直到商為小于1時為止,然后把先得到的余數(shù)作為二進制數(shù)的低位有效位,后得到的余數(shù)作為二進制數(shù)的高位有效位,依次排列起來。這就是除二取余法。(圖1)

      下面我們來分析將十進制正整數(shù)轉(zhuǎn)化為二進制的代碼。問題的核心是將“除2取余,逆序排列”轉(zhuǎn)化成可以執(zhí)行的代碼(圖2)。

      設(shè)置了四個變量,“十進制”、“二進制”、“商”、“余數(shù)”。

      特別要注意二進制賦值中為空,否則最后的結(jié)果會多一位小尾巴0。

      將輸入的十進制數(shù)設(shè)為“商”。對它除以2取余數(shù),將這位“余數(shù)”存入“二進制”的個位,將“商”除以2向下取整存為下一次循環(huán)的“商”。這就是將“除2取余,逆序排列”的計算步驟轉(zhuǎn)化為編程的循環(huán)語句,一直處理到“商”=0為止。算出每次商除2的余數(shù),將余數(shù)和二進制的數(shù)合并。這樣結(jié)果就可以出來了。

      十進制小數(shù)轉(zhuǎn)換成二進制小數(shù)方法與整數(shù)不同,要用“乘2取整,順序排列”法。用2乘十進制小數(shù),可以得到積,將積的整數(shù)部分取出,作為二進制小數(shù)的高位,再用2乘余下的小數(shù)部分,又得到一個積,再將積的整數(shù)部分取出,如此進行,直到積中的小數(shù)部分為零,或者達到所要求的精度為止。把取出的整數(shù)部分按順序排列起來,先取的整數(shù)為二進制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。

      在計算機中將十進制小數(shù)轉(zhuǎn)換為二進制小數(shù)時,常常會出現(xiàn)無限循環(huán)的情況。由于計算機的內(nèi)存空間有限,只能保留有限的小數(shù)位。這時把二進制換回十進制就會出現(xiàn)誤差。

      比如0.3轉(zhuǎn)換為二進制是0.010011001(1001循環(huán)),0.3轉(zhuǎn)為二進制再轉(zhuǎn)回十進制就變小了。

      0.3≈0.010011001≈0.298828125

      這種因存儲空間導(dǎo)致的精度問題是編程上常見的技術(shù)問題,吃透了進制轉(zhuǎn)換對您后續(xù)的編程學(xué)習(xí)有重要的意義。

      猜你喜歡
      逆序二進制整數(shù)
      用二進制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
      有界線性算子的Drazin逆的逆序律
      有趣的進度
      關(guān)于矩陣廣義BottDuffin逆的逆序律
      二進制在競賽題中的應(yīng)用
      新中國70年漢語逆序詞研究(1949—2019)
      對外漢語教學(xué)中AB-BA式逆序詞教學(xué)分析
      一類整數(shù)遞推數(shù)列的周期性
      聚焦不等式(組)的“整數(shù)解”
      一個生成組合的新算法
      呼伦贝尔市| 大庆市| 前郭尔| 东港市| 政和县| 长春市| 北票市| 齐河县| 岳阳县| 桐城市| 和硕县| 凤山县| 绥芬河市| 新乡市| 搜索| 庐江县| 同江市| 从江县| 安达市| 巴林右旗| 唐山市| 印江| 丰镇市| 平和县| 龙海市| 苗栗市| 保康县| 高雄市| 兴城市| 大关县| 深圳市| 嘉黎县| 平度市| 胶州市| 石楼县| 巧家县| 沾化县| 且末县| 保亭| 平武县| 仁化县|