c/进制.go

77 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package c
import (
"strconv"
)
/*
1. 二进制转八进制 %b -> %o
2. 二进制转十进制 %b -> %d
3. 二进制转十六进制 %b -> %x
4. 八进制转二进制 %o -> %b
5. 八进制转十进制 %o -> %d
6. 八进制转十六进制 %o -> %x
7. 十进制转二进制 %d -> %b
8. 十进制转八进制 %d -> %o
9. 十进制转十六进制 %d -> %x
10. 十六进制转二进制 %x -> %b
11. 十六进制转八进制 %x -> %o
12. 十六进制转十进制 %x -> %d
%b 表示为二进制
%c 该值对应的unicode码值
%d 表示为十进制
%o 表示为八进制
%q 该值对应的单引号括起来的go语法字符字面值必要时会采用安全的转义表示
%x 表示为十六进制使用a-f
%X 表示为十六进制使用A-F
%U 表示为Unicode格式U+1234等价于"U+%04X"
%E 用科学计数法表示
%f 用浮点数表示
fmt.Printf("十进制%d转成八进制%o",num1,num2)
return fmt.Sprintf("%.2f KB", b/1024)
*/
func C进制16_10(t string) int64 { //十六进制到十进制 文本-整数
if parseUint, err := strconv.ParseInt(t, 16, 64); err != nil {
panic(err)
return 0
} else {
return parseUint
}
return 0
}
func C进制16_10a(t []byte) int64 { //十六进制到十进制 文本-整数
a := C字节集到十六进制(t)
return C进制16_10(a)
}
func C进制8_10(t string) int64 { //八进制到十进制 文本-整数
if parseUint, err := strconv.ParseInt(t, 16, 64); err != nil {
panic(err)
return 0
} else {
return parseUint
}
return 0
}
func C进制8_10a(t []byte) int64 { //十六进制到十进制 字节集-整数
a := C字节集到十六进制(t)
return C进制8_10(a)
}
func C进制10_16(t int64) string { //十进制到十六进制 整数-文本
return strconv.FormatInt(t, 16)
}
func C进制16_10反(t string) int64 { //十六进制到十进制 文本-整数
s := C选择文本(len(t)%2 == 0, t, C文本_自动补零(t, len(t)+1))
var x string
for i := 0; i < len(s)/2; i++ {
x = C取文本中间(s, i*2, 2) + x
}
return C进制16_10(x)
}
func C进制16_10反a(t []byte) int64 { //十六进制到十进制 字节集-整数
a := C字节集到十六进制(t)
return C进制16_10反(a)
}