英文:
Decimal to UpperCase Hex String on Go
问题
我正在将一个十进制数转换为(修改后的)十六进制值,并在一个循环中使用 fmt.Sprintf 函数形成一个长字符串。但是我希望该值为大写字母的十六进制,而不是小写字母的十六进制。这应该在哪里进行修改?在十进制到十六进制的转换中?还是在 strings.Join 函数的修改中?
for ....{
b := []string{}
b = append(b, fmt.Sprintf("[%d=%s]", m.K, fmt.Sprintf("%016X", m.V)[2:14]))
}
fmt.Fprintf(
outputFile,
"%d, 0, %d, %s, 0\n",
..,
..,
..,
strings.Join(b, " "))
你只需要将 fmt.Sprintf("%016x", m.V) 中的小写字母 x 改为大写字母 X 即可实现大写字母的十六进制表示。修改后的代码如下:
for ....{
b := []string{}
b = append(b, fmt.Sprintf("[%d=%s]", m.K, fmt.Sprintf("%016X", m.V)[2:14]))
}
fmt.Fprintf(
outputFile,
"%d, 0, %d, %s, 0\n",
..,
..,
..,
strings.Join(b, " "))
英文:
I'm converting a Decimal to (a modified) Hex value within an fmt.Sprintf function as I form a long string with a for loop - But want the value to be UpperCase rather than LowerCase Hex. Where should this occur? In the Dec to Hex conversion? Or a modification of the strings.Join function?
for ....{
b := []string{}
b = append(b, fmt.Sprintf("[%d=%s]", m.K, fmt.Sprintf("%016x", m.V)[2:14]))}
fmt.Fprintf(
outputFile,
"%d, 0, %d, %s, 0\n",
..,
..,
..,
strings.Join(b, " "))
答案1
得分: 4
> fmt 包
>
> 导入 "fmt"
>
> 打印
>
> 格式化动词:
>
> 字符串和字节切片:
>
> %x 十六进制,小写,每个字节两个字符
> %X 十六进制,大写,每个字节两个字符
例如,
fmt.Sprintf("%016X", m.V)[2:14]
英文:
> Package fmt
>
> import "fmt"
>
> Printing
>
> The verbs:
>
> String and slice of bytes:
>
> %x base 16, lower-case, two characters per byte
> %X base 16, upper-case, two characters per byte
For example,
fmt.Sprintf("%016X", m.V)[2:14]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论