excel中能進行進位轉換嗎(每天學一點Excel2010102)
2023-04-22 00:29:29
216 學做進位轉換器
前面學習了12個進位轉換函數,其實明白了進位轉換的道理我們可以自行製作一個進位轉換器。下面由簡至繁學做一個,先轉成我們最熟悉的十進位,FOLLOW ME!
1)新建一個工作表,在A1單元格輸入二進位的基數2,添加1個背景色。B1單元格將來用於輸入2進位數,添加一個背景顏色,我們就認為是雙字節數吧,最多16位,先輸入數字1234567890,調試用,將單元格設置成文本格式後,便可以輸入前置0。
16位數字的冪
2)十進位第一位是數字乘以10^0,第二位是數字乘以10^1,依次類推。我們把16位數字的冪0~15填入A列,在A2單元格輸入「=row(A1)-1」或「=row-2」,利用填充柄將公式向下填充值A17(如果數值不變要按F9重新計算,或將「公式」選項卡的「計算選項」改為「自動」)。
逐位提取
3)現在我們要把輸入數字從右到左逐位提取出來。在B2單元格輸入「=mid($B$1,len($B$1)-A2,1)」,向下填充,因為文本不足16位,所以後面的出錯了,可以將B2補足16位輸入1234567890ABCDEF,看看提取有錯沒有。
逐位乘以基數的冪
4)現在可以在B2單元格輸入一個2進位數字了,比如111。下面輸入換算公式,在C2單元格輸入公式「=B2*$A$1^A2」,向下填充。
5)現在解決錯誤的問題,使用IF函數和iserr函數。選擇B2單元格,按F2進入編輯狀態,將公式修改成上圖中的公式,如果公式出錯就返回0,沒出錯就返回公式計算結果,然後向下填充。
2進位轉換成10進位
6)在C1單元格中輸入公式「=sum(C2:C17)」,添加一個背景色。一個2進位到10進位的轉換器雛形便完成了。
對比結果
7)Excel自帶轉換函數只能轉9位數字,第10位是符號位,我們在D1單元格輸入公式「=bin2dec(B1)」對比一下,9位以內都沒有問題,加上10位1就變負值,10位以上就無能為力了。
8進位轉換成10進位
8)現在我們把A1單元格的基數改成8,把D1單元格中的公式改成「=oct2dec(B1)」,選中C、D列將格式設置為不帶小數的數值,輸入數據看看,9位以內都沒有問題,加上10位4~7就變負值,10位以上Excel自帶函數就無能為力了。
9)把A1的基數改成10,就是10進位到10進位的轉換。有興趣的把10以內的進位都看看,轉換沒有問題。
進位的數據有效性
10)下面增加數據有效性。選擇A1單元格,點擊「數據」選項卡,「數據工具」區域的「數據有效性」,如上圖設置,使可選進位數值為2~10。
輸入文本的長度限值
11)選擇B1單元格,點擊「數據」選項卡,「數據工具」區域的「數據有效性」,如上圖設置,避免長度超過16。
12)利用Excel自帶函數可以簡化計算,將1個16位2進位數分成2個8位的2進位數。在D1單元格輸入「=if(len(B1)>8,left(B1,len(B1)-8),0)」,在D2輸入「=right(B1,8)」。使用if語句是防止不夠8位時取不到數。
利用Excel自帶函數
13)在E2單元格中輸入公式「=bin2dec(D2)*A1^8」,因為是左面8位,要乘以基數的8次方。在E3單元格中輸入公式「=bin2dec(D3)。在E1單元格輸入「=sum(E2:E3)」。
8進位轉換十進位
14)把基數改為8,E2、E3的函數改成oct2dec,對8進位也起作用。
15)思考一下超過10進位的轉換怎麼辦?
(待續)
,