10進数と16進数を相互変換してみる
10進数:
16進数:
10進数の右のテキストボックスに半角数字を入力すると
16進数が表示されます
10進数は0123456789の10文字の組み合わせで表現される
16進数は0123456789abcdefの16文字の組み合わせで表現される
10進数を16進数にする .toString(16)
コード.gsfunction get_log() { var decimal = 15; var hexadecimal = decimal.toString(16); Logger.log(hexadecimal); } | 意訳この機能がやること 10進数の数字を決めて 16進数にして ログに出す |
HTML Serviceで相互変換機能を作ってみる
コード.gsfunction doGet() { return HtmlService.createHtmlOutputFromFile("index"); } | 意訳この機能がやること 指定したHTMLファイルを表示する |
index.html<!DOCTYPE html> <html> <body> 10進数:<input type="text" id="decimal"><br> 16進数:<input type="text" id="hexadecimal"> <script> document.getElementById("decimal").onkeyup = decimal_key_up; document.getElementById("hexadecimal").onkeyup = hexadecimal_key_up; function decimal_key_up(){ var decimal = document.getElementById("decimal").value; var hexadecimal = parseInt(decimal, 10).toString(16); document.getElementById("hexadecimal").value = hexadecimal; } function hexadecimal_key_up(){ var hexadecimal = document.getElementById("hexadecimal").value; var decimal = parseInt(hexadecimal, 16).toString(10); document.getElementById("decimal").value = decimal; } </script> </body> </html> | 意訳これはHTML5文書です 10進数を入力するテキストボックスを置く 改行 16進数を入力するテキストボックスを置く idがdecimalの要素でキーが上がったらdecimal_key_upを実行する idがhexadecimalの要素でキーが上がったらhexadecimal_key_upを実行する この機能がやること idがdecimalの要素の値(文字列)を取得して 値を10進数にしてそれを16進数にして idがhexadecimalの要素に入れる この機能がやること idがhexadecimalの要素の値(文字列)を取得して 値を16進数にして10進数にして idがdecimalの要素に入れる |
シートに書き出す
シートに10進数の数字を用意してそれらを16進数にしてみる
コード.gs
function get_hexadecimal() { 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 hexadecimal = parseInt(values[i]).toString(16); array.push([hexadecimal]); } 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列のデータが入っている最終行を指定して 値をすべて取得して 結果を入れる配列を用意して 値の数だけ以下を繰り返す 値をひとつずつ数値にしてから16進数にして 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