Go语言将10进制数转换为16进制数写入文件
程序员文章站
2022-07-13 21:03:07
...
package main
import (
"fmt"
"os"
)
var (
num2char string
a string
)
func decimalToAny(num, n, count int) string {
new_num_str := ""
var remainder int
var remainder_string string
for num != 0 {
remainder = num % n
remainder_string = string(num2char[remainder])
new_num_str = remainder_string + new_num_str //注意顺序
num = num / n
}
length := len(new_num_str)
if length < count { //如果小于8位
for i := 1; i <= count-length; i++ {
new_num_str = "0" + new_num_str
}
} else {
return "ERROR"
}
return new_num_str
}
func check(e error) {
if e != nil {
panic(e)
}
}
func main() {
num2char = "0123456789abcdef"
//对于更细粒度的写入,先打开一个文件。
f, err := os.Create("dat2")
check(err)
//打开文件后,习惯立即使用 defer 调用文件的 Close操作。
defer f.Close()
for i := 1; i <= 256; i++ {
a = decimalToAny(i, 16, 8)
//WriteString 也是可用的。
f.WriteString(a + "\n")
//调用 Sync 来将缓冲区的信息写入磁盘。
f.Sync()
}
fmt.Println("Finish")
}