Google脚本转换为十六进制

时间:2019-02-05 19:03:10

标签: google-apps-script google-sheets

我想使用Google表格将值作为一个十六进制数字存储在单元格中。

但是使用Utilities.formatString("0x%2x", byte)将立即数“ 0x%2x”存储在单元格中。

使用Utilities.formatString("0x%2i", byte)可以按预期存储“ 0x [数字]”。

知道我在做什么错吗?

最好的问候 斯蒂芬

2 个答案:

答案 0 :(得分:0)

以下是可以执行您想要的功能的函数:

// function to convert decimal to hexadecimal 
function DecToHex(value) {    
  var result = "";
  while( value != 0 ) {
    var temp = value % 16;
    Logger.log(temp);
    var hex = temp < 10 ? String.fromCharCode(temp+48) : String.fromCharCode(temp+55);
    result = hex.concat(result);
    value = Math.floor(value/16);
  }
  if( ( result.length %2 ) != 0 ) result = "0"+result;
  result = "0x"+result;
  return result;
} 

答案 1 :(得分:0)

要将任何 Number 转换为十六进制,请使用 theNumber.toString(16)

一个简单的转换函数,加上前缀0x,限制为两位数为:

function dec2hex(value) {
  return "0x" + (value&255).toString(16).padStart(2, "0");
}