回覆列表
-
1 # 使用者2404187828398
-
2 # 已經過期了
16進位制轉10進位制:
像10進位制數一樣的說,把16進位制數看成有個位數,十位數,百位數……
將“個位數”乘上16的0次方(*16^0),
將“十位數”乘上16的1次方(*16^1),
將“百位數”乘上16的2次方(*16^2),
……
……
最後將所有上面得到的數加起來就是他的十進位制數了
例如:將16進位制的 (10A) 轉換成10進位制的數
A*1=10
0*16=0
1*16^2=256
所以所得的數為10+0+256=266
10進位制轉16進位制:
這個有點麻煩……
將給定的十進位制整數除以基數16,餘數便是等值的16進位制的最低位。
將上一步的商再除以基數16,餘數便是等值的16進位制數的次低位。
重複上一步驟,直到最後所得的商等於0為止。各次除得的餘數,便是16進位制各位的數,最後一次的餘數是最高位
例如:10進位制的 (100) 變為16進位制
先把100除以16,得到6餘數為4,則“個位數”為4;
用6除以16,得到0餘數為6,則“十位數”為6。所以100的16進製為“64”。
依此類推。
注:
A=10 B=11 C=12 D=13 E=14 F=15
10進位制轉化到2至36的任意進位制 ,BASE函式 。超出10以上用字母A-Z
Base函式有三個引數,第一個為要轉為的值,第二個為進位制基數,第三個轉化後長度(實際長度大於此引數,按實際長度,否則補前導0)
如果把65轉為化3位的9進位制數,則base(65,9,3)=072; 如果把200轉化為4位30進位制的數,則base(200,30,4)=006K
如果要把給定 2至36進位制的數字轉化為十進位制的數字,可以用Decimal函式
這個函式有兩個引數,第一個為要轉為的其它進位制數字,第二個為進位制。
如果要把9進位制的072轉化為10進位制,則Decimal("072",9)=65,或Decimal(72,9)=65
如果要把30進位制的06K轉化為10進位制,則Decimal ("06K",30)=200
需要注意的是,如果要轉為的數值全部位數字,第一個引數可以不用雙引號括起來的字串形式,直接以數字形式表示,但是超出10進位制則必須以字串形式書寫,否則會報錯或者將其當成一個引用進行計算。
如下:A2單元格的值為200, 16進位制的A2為162,則Decimal(A2,16)=decimal(200,16)=decimal("200")=512; Decimal("A2",16)=162