2進数、10進数、16進数の変換方法

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
入力:<xp:inputText id="input1"></xp:inputText>
<xp:br></xp:br>
結果:<xp:inputText id="result"></xp:inputText>
<xp:br></xp:br>
<xp:button id="button1" value="2進数To10進数">
	<xp:eventHandler event="onclick" submit="false">
		<xp:this.script><![CDATA[var strBinary = document.getElementById('#{id:input1}').value;
var strDec = parseInt(strBinary,2); //2進数 → 10進数
document.getElementById('#{id:result}').value = strDec;]]></xp:this.script>
	</xp:eventHandler>
</xp:button>
<xp:button id="button2" value="2進数To16進数">
	<xp:eventHandler event="onclick" submit="false">
		<xp:this.script><![CDATA[var strBinary = document.getElementById('#{id:input1}').value;
var strHexa = parseInt(strBinary,2).toString(16); // 2進数 → 16進数
document.getElementById('#{id:result}').value = strHexa;]]></xp:this.script>
	</xp:eventHandler>
</xp:button>
<xp:br></xp:br>
	<xp:button id="button3" value="10進数To16進数">
	<xp:eventHandler event="onclick" submit="false">
		<xp:this.script><![CDATA[var strDecimal = document.getElementById('#{id:input1}').value;
var strHexa = parseInt(strDecimal,10).toString(16); //10進数 → 16進数
document.getElementById('#{id:result}').value = strHexa;]]></xp:this.script>
	</xp:eventHandler>
</xp:button>
<xp:button id="button4" value="10進数To2進数">
	<xp:eventHandler event="onclick" submit="false">
		<xp:this.script><![CDATA[var strDecimal = document.getElementById('#{id:input1}').value;
var strBinary = parseInt(strDecimal,10).toString(2); //10進数 → 2進数
document.getElementById('#{id:result}').value = strBinary;]]></xp:this.script>
	</xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:button id="button5" value="16進数To10進数">
	<xp:eventHandler event="onclick" submit="false">
		<xp:this.script><![CDATA[var strHexa = document.getElementById('#{id:input1}').value;
var strDec = parseInt(strHexa,16).toString(10); //16進数 → 10進数
document.getElementById('#{id:result}').value = strDec;]]></xp:this.script>
	</xp:eventHandler>
</xp:button>
	<xp:button id="button6" value="16進数To2進数">
		<xp:eventHandler event="onclick" submit="false">
			<xp:this.script><![CDATA[var strHexa = document.getElementById('#{id:input1}').value;
var strBinary = parseInt(strHexa,16).toString(2); //16進数 → 2進数
document.getElementById('#{id:result}').value = strBinary;]]></xp:this.script>
		</xp:eventHandler>
	</xp:button>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:button id="button7" value="16進数To10進数(SSJS)">
	<xp:eventHandler event="onclick" submit="true" refreshMode="partial" disableValidators="true" refreshId="result">
		<xp:this.action><![CDATA[#{javascript:// サーバーサイドでも同様のコードで動きます。
var strHexa = getComponent('input1').getValue();
var strDec = parseInt(strHexa,16).toString(10); //16進数 → 10進数
getComponent('result').setValue(strDec);}]]></xp:this.action>
	</xp:eventHandler></xp:button></xp:view>





画面

サンプルプレビュー

概要

・2進数、10進数、16進数の相互変換

・各進数の相互変換は、サーバーサイド、クライアントサイドとも同様のjavascriptコードで実現可能

 

説明

このスニペットでは、

①2進数、10進数、16進数を表す文字列から数値への変換

②数値から2進数、10進数、16進数を表す文字列への変換

の2つの処理を行っています。

 

①ではparseIntメソッドを使用しています。

parseInt(string, radix);

string:2進数、10進数、16進数を表す文字列

radix:基数 (何進数であるか。10進数なら10を、2進数なら2を渡す。)

 

②では数値オブジェクトのメソッドtoString使用しています。

Number.toString(radix);

Number: 数値オブジェクト

radix: 基数


XPages
kishikawa
July 17, 2018 at 3:22 PM
Rating
0





No comments yetLogin first to comment...