go - 如何基于第一个命令行参数实现 num2hex 函数
问题描述
实现了一个函数,该函数num2hex()
接受一个无符号整数并将其十六进制等效值作为字符串返回。但是这里的函数应该有一个额外的参数-u
来指定十六进制数字是小写(默认)还是大写。
例如:677
输出2a5
例如:-u 107471
输出1A3CF
我的代码:
package main
import (
"fmt"
"os"
"strconv"
)
func main() {
//p := 107471
//h := fmt.Sprintf("%x", p)
p := os.Args[1:]
var err error
nums := make([]int, len(p))
for i := 0; i < len(p); i++ {
if nums[i], err = strconv.Atoi(p[i]); err != nil {
fmt.Println("Not a number")
}
num2hex(nums[i])
}
}
func num2hex(m int) {
fmt.Printf("%x", m)
}
解决方案
我认为这可以满足您的要求:
package main
import (
"flag"
"fmt"
)
func main() {
var upper bool
flag.BoolVar(&upper, "u", false, "upper case")
flag.Parse()
for _, s := range flag.Args() {
var n int
fmt.Sscan(s, &n)
if upper {
fmt.Printf("%X\n", n)
} else {
fmt.Printf("%x\n", n)
}
}
}
推荐阅读
- postgresql - PostgreSQL - 添加仅在列不为 NULL 时应用的约束
- python - python中的KNN和交叉验证实现
- reactjs - 反应数字格式为值添加后缀
- c# - C# - 将字符串/空值转换为十进制
- python - 将名称与前面的地理信息相关联(使用 Python 3 从 PDF 中提取文本)
- php - 在flutter中使用php从扫描条码中获取信息
- javascript - 如何获取具有特定开始日期的所有对象
- flutter - Flutter 动态 PopupMenu 内容
- python - 如何重复嵌套列表的元素?
- merge - 有没有办法为一系列列制作键?