N進数変換
1
2進数文字列を10進数に変換したい
1
2進数文字列を10進数に変換する場合は、2進数文字列をByteArray型に変換を行った上で
ByteArrayクラスのGetIntegerメソッド、GetIntegerAsStringメソッドを使用して10進数(10進数文字列)に変換を行います。
[ サンプルコード ]
Form form1 { Width = 465; Height = 485; EditBox EditBox1 { X = 17; Y = 38; Width = 352; Height = 350; } Button Button1 { X = 215; Y = 410; Width = 157; Height = 38; Title = "2進数→10進数に変換"; Function OnTouch( e ) { /* 2進数文字列をByteArrayに変換 */ var bin = ^.binaryStrToByteArray("00110101"); /* 10進数に変換 */ var num = bin.GetInteger( 0, bin.Length, ByteArray.UNIT_BYTE + ByteArray.BIG_ENDIAN ); /* 10進数文字列に変換 ※Number(15桁精度)を超えてしまう場合などはString型で取得 */ var num_str = bin.GetIntegerAsString( 0, bin.Length, ByteArray.UNIT_BYTE + ByteArray.BIG_ENDIAN ); ^.EditBox1.Value += "整数値として取得(GetIntegerメソッド):" + str(num) + "\n"; ^.EditBox1.Value += "文字列として取得(GetIntegerAsStringメソッド):" + str(num_str) + "\n"; ^.EditBox1.Value += "*******************************************************\n"; /* 2進数文字列をByteArrayに変換 */ var bin2 = ^.binaryStrToByteArray("000101011110010001011111111"); /* 10進数に変換 */ var num2 = bin2.GetInteger( 0, bin2.Length, ByteArray.UNIT_BYTE + ByteArray.BIG_ENDIAN ); /* 10進数文字列に変換 ※Number(15桁精度)を超えてしまう場合などはString型で取得 */ var num_str2 = bin2.GetIntegerAsString( 0, bin2.Length, ByteArray.UNIT_BYTE + ByteArray.BIG_ENDIAN ); ^.EditBox1.Value += "整数値として取得(GetIntegerメソッド):" + str(num2) + "\n"; ^.EditBox1.Value += "文字列として取得(GetIntegerAsStringメソッド):" + str(num_str2); } } /* 2進数文字列をByteArrayに変換 */ Function binaryStrToByteArray(_str) { var n; /* 8の倍数ではない場合は左ゼロサプレス */ if(_str.length % 8 != 0){ for(n=0; n<(_str.length % 8);n++){ _str = "0"+_str; } } this.EditBox1.Value += "解析データ(2進数):" + str(_str) + "\n"; var ret = new ByteArray; var tmpstr; var n1; var nn; var num; var oneByte; /* 解析開始 */ /* 8桁ごとに処理する */ for( n1 = 0; n1 < _str.length / 8; n1++ ){ tmpstr = mid(_str, n1 * 8, 8 ); this.EditBox1.Value += "8桁ごとに区切って計算\n"; this.EditBox1.Value += str(tmpstr) + "→"; oneByte = 0; for( nn = 0; nn < 8; nn++ ){ /* 右端から */ num = val(mid(tmpstr,8 - 1 - nn,1)); if(num==1){ /* 累乗を求める */ oneByte += Math.pow( 2, nn ); } } this.EditBox1.Value += str(oneByte) + "\n"; ret += new ByteArray(oneByte); } /* 解析結果を戻す */ return ret; } }
管理番号:ConHt_001
Biz-Collections Bizの宝箱 トップへ
Biz/Browser HT・Biz/Browser SmartDevice・Biz/Browser AI TIPS集 トップへ