<?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: 基数