LANG SELRCT

コードを書く場所についてはこちら

2018年2月2日金曜日

JavaScriptで10進数から2進数に変換する .toString(2)


10進数の数字を2進数の数字にしてみる


10進数:
  2進数:


10進数の右のテキストボックスに半角数字を入力すると
2進数が表示されます

10進数は0123456789の10文字の組み合わせで表現される
2進数は0と1の2文字で表現される


10進数を2進数にする .toString(2)


コード.gs
function get_log() {
  var decimal = 15;
  var binary = decimal.toString(2);
  Logger.log(binary);
}
意訳
この機能がやること
10進数の数字を決めて
2進数にして
ログに出す






HTML Serviceで相互変換機能を作ってみる


コード.gs
function doGet() {
  return HtmlService.createHtmlOutputFromFile("index");
}
意訳
この機能がやること
指定したHTMLファイルを表示する




index.html
<!DOCTYPE html>
<html>
  <body>
    10進数:<input type="text" id="decimal"><br>
    2進数:<input type="text" id="binary">
    
    <script>
    document.getElementById("decimal").onkeyup = decimal_key_up;
    document.getElementById("binary").onkeyup = binary_key_up;
    
    function decimal_key_up(){
      var decimal = document.getElementById("decimal").value;
      var binary = parseInt(decimal, 10).toString(2);
      document.getElementById("binary").value = binary;
    }
    
    function binary_key_up(){
      var binary = document.getElementById("binary").value;
      var decimal = parseInt(binary, 2).toString(10);
      document.getElementById("decimal").value = decimal;
    }
    </script>
  </body>
</html>
意訳
これはHTML5文書です


10進数を入力するテキストボックスを置く
改行
2進数を入力するテキストボックスを置く


idがdecimalの要素でキーが上がったらdecimal_key_upを実行する
idがbinaryの要素でキーが上がったらbinary_key_upを実行する

この機能がやること
idがdecimalの要素の値(文字列)を取得して
値を10進数にしてそれを2進数にして
idがbinaryの要素に入れる


この機能がやること
idがbinaryの要素の値(文字列)を取得して
値を2進数にして10進数にして
idがdecimalの要素に入れる






シートに書き出す


シートに10進数の数字を用意して
それらを2進数にしてみる



コード.gs
function get_binary() {
  var sh = SpreadsheetApp.getActiveSheet();
  var last_row = sh.getLastRow();
  var range = sh.getRange("A2:A" + last_row);
  var values = range.getValues();
  var array = [];
  for (var i = 0; i < values.length; i++) {
    var binary = parseInt(values[i]).toString(2);
    array.push([binary]);
  }
  var start_row = 2;
  var start_col = 2;
  set_values(array, start_row, start_col, sh, last_row);
}

function set_values(array, start_row, start_col, sh, last_row){
  var num_rows = array.length;
  var num_cols = array[0].length;
  var range = sh.getRange(start_row, start_col, num_rows, num_cols);
  range.setValues(array); 
}
意訳
この機能がやること
シートを取得して
データが入力されている最終行を取得して
A2からA列のデータが入っている最終行を指定して
値をすべて取得して
結果を入れる配列を用意して
値の数だけ以下を繰り返す
値をひとつずつ数値にしてから2進数にして
arrayに追加する

開始行を指定して
開始列を指定して
set_valuesにarrayとともshとlast_rowも渡す


この機能がやること
arrayの長さから入力する行数を取得して
arrayの0番目の長さから入力する列数を取得して
範囲を指定して
arrayの値を入力する



参考

Number.prototype.toString()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/toString