「●進数変換」の編集履歴(バックアップ)一覧はこちら
●進数変換 - (2008/09/13 (土) 18:28:34) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
*情報
作者名:五十六
引用元:[[なでしこプログラム掲示板「進数変換セット」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=907&rev=&no=0]]
*概要
2進数から32進数までを相互変換します。
*解説
***引数
S:数値
A:Sの元の進数
B:目的の進数
***返り値
B進数に変換された文字列
*サンプルプログラム
(本体のコメント参照)
*本体
●十進数(SをVで)
//36進数まで
//S:10進数に戻したい数値
//V:元の進数
//例:16進数の「75BCD15」を10進数に戻したい!
//「75BCD15」を16で十進数。それを言う。//123456789
合計値とは数値。S=Sを文字列分解して配列逆順。変換後=空。
変換前=(「A」から「Z」まで文字コード範囲)を文字列分解。26回、変換後に「{回数+9}」を配列追加。
変換前で反復、S=Sの対象を変換後[回数-1]に置換。
Sで反復、合計値=合計値+(対象×(V^(回数-1)))。
合計値で戻る。
●進数(SをV|SのV|SでV)
//36進数まで
//S:10進数の数値
//V:目的の進数
//例:10進数の「123456789」を16進数に変えたい!
//「123456789」を16進数。それを言う。//75BCD15
変換前とは配列。結果配列とは配列。26回、変換前に「{回数+9}」を配列追加。
変換後=(「A」から「Z」まで文字コード範囲)を文字列分解
1の間
もし、S<Vならば
変換前で反復、S=Sの対象を変換後[回数-1]に単置換。
結果配列にSを配列追加。抜ける。
C=S%V。変換前で反復、C=Cの対象を変換後[回数-1]に単置換。
結果配列にCを配列追加。S=(S/V)の整数部分。
結果配列を配列逆順して空で配列結合して戻る。
●進数変換(SをAからBに)
//36進数まで
//S:数値
//A:Sの元の進数
//B:目的の進数
//例:「123456789」を10進数から2進数に変えたい!
//「123456789」を10から2に進数変換。それを言う。//111010110111100110100010101
S=SをAで十進数。Sの(B)進数で戻る。
●文字コード範囲(AからBまで)
結果とは配列。最初=ASC(A)。最後=ASC(B)。逆=いいえ。
もし、最初>最後なら、M=最初。N=最後。最初=N。最後=M。逆=はい。
最初から最後まで繰り返す、結果にCHR(回数+最初-1)を配列追加。
もし、逆=はいならば、結果を配列逆順。
結果を空で配列結合して戻る。
*情報
作者名:五十六
引用元:[[なでしこプログラム掲示板「進数変換セット」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=907&rev=&no=0]]
*概要
2進数から36進数までを相互変換します。
*解説
***引数
S:数値
A:Sの元の進数(2~36)
B:目的の進数(2~36)
***返り値
B進数に変換された文字列
*サンプルプログラム
#例:「123456789」を10進数から2進数に変えたい!
「123456789」を10から2に進数変換。それを言う。//111010110111100110100010101
*本体
●十進数(SをVで)
合計値とは数値。S=Sを文字列分解して配列逆順。変換後=空。
変換前=(「A」から「Z」まで文字コード範囲)を文字列分解。26回、変換後に「{回数+9}」を配列追加。
変換前で反復、S=Sの対象を変換後[回数-1]に置換。
Sで反復、合計値=合計値+(対象×(V^(回数-1)))。
合計値で戻る。
●進数(SをV|SのV|SでV)
変換前とは配列。結果配列とは配列。26回、変換前に「{回数+9}」を配列追加。
変換後=(「A」から「Z」まで文字コード範囲)を文字列分解
1の間
もし、S<Vならば
変換前で反復、S=Sの対象を変換後[回数-1]に単置換。
結果配列にSを配列追加。抜ける。
C=S%V。変換前で反復、C=Cの対象を変換後[回数-1]に単置換。
結果配列にCを配列追加。S=(S/V)の整数部分。
結果配列を配列逆順して空で配列結合して戻る。
●進数変換(SをAからBに)
S=SをAで十進数。Sの(B)進数で戻る。
●文字コード範囲(AからBまで)
結果とは配列。最初=ASC(A)。最後=ASC(B)。逆=いいえ。
もし、最初>最後なら、M=最初。N=最後。最初=N。最後=M。逆=はい。
最初から最後まで繰り返す、結果にCHR(回数+最初-1)を配列追加。
もし、逆=はいならば、結果を配列逆順。
結果を空で配列結合して戻る。