新しく発言する  EXIT  インデックスへ

16進法


  16進法 マメ 2008/03/27 23:16:08 
  !10進レジスター:16進レジスターのよう... SECOND 2008/03/28 01:51:15 
  │└!エピソード SECOND 2008/03/28 18:04:07 
  │ └エピソード2 SECOND 2008/03/28 19:17:59 
  │  └!2進化10進数(BCD、Binary-codeddecimal)... 山中和義 2008/03/30 12:52:58 
  簡単なのは組込み関数のBSTR$を使うことです... 荒田浩二 2008/03/28 11:39:51  (修正1回)
Re: 16進法  返事を書く  ノートメニュー
荒田浩二 <knrztrhoel> 2008/03/28 11:39:51 ** この記事は1回修正されてます
簡単なのは組込み関数のBSTR$を使うことです。

10 INPUT n ! 非負の10進整数
20 PRINT BSTR$(n,16)
30 END


組込み関数を使わない方法としては、
すでに10進法から2進法への変換プログラムが完成しているのであれば、そこから16進法へ変換できます。

REM ** 2進法を16進法に変換(b$→h$) **
INPUT n ! 非負の10進整数
LET b$=BSTR$(n,2) ! この部分はオリジナルのプログラムでどうぞ
PRINT b$ ! 2進法文字列
DECLARE FUNCTION convert$
LET m=MOD(LEN(b$),4)
IF m<>0 THEN LET h$=convert$(b$(1:m)) ! 上位m桁
FOR i=0 TO INT(LEN(b$)/4)-1 ! 4桁ずつ変換
LET h$=h$ & convert$(b$(m+4*i+1:m+4*i+4))
NEXT i
PRINT h$ ! 16進法文字列
PRINT BVAL(h$,16) ! 組込み関数で検証
FUNCTION convert$(x$) ! 2進法4桁を16進法1桁に変換
LET a=0
FOR j=1 TO LEN(x$)
LET a=a+VAL(x$(j:j))*2^(LEN(x$)-j)
NEXT j
IF a>=10 THEN LET convert$=CHR$(a+55) ELSE LET convert$=STR$(a)
END FUNCTION
END



 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。