我想使用Google表格将值作为一个十六进制数字存储在单元格中。
但是使用Utilities.formatString("0x%2x", byte)
将立即数“ 0x%2x”存储在单元格中。
使用Utilities.formatString("0x%2i", byte)
可以按预期存储“ 0x [数字]”。
知道我在做什么错吗?
最好的问候 斯蒂芬
答案 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");
}