【问题标题】:Google script convert to hex谷歌脚本转换为十六进制
【发布时间】:2019-06-29 16:21:23
【问题描述】:

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

但使用Utilities.formatString("0x%2x", byte) 会将文字“0x%2x”存储在单元格中。

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

知道我做错了什么吗?

最好的问候 斯蒂芬

【问题讨论】:

  • 嗯,它确实建议了一个我会尝试的解决方法。但我仍然不明白我在 formatString 上的尝试有什么问题。
  • 尝试使用 String(byte) 将字节强制转换为字符串。我不知道只是一个想法。

标签: google-apps-script google-sheets


【解决方案1】:

这是一个可以做你想做的功能:

// 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;
} 

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      相关资源
      最近更新 更多