35 lines
664 B
Go
35 lines
664 B
Go
|
|
package main
|
||
|
|
|
||
|
|
import (
|
||
|
|
"strconv"
|
||
|
|
"strings"
|
||
|
|
)
|
||
|
|
|
||
|
|
func HexToInt64(hexStr string) (int64, error) {
|
||
|
|
// Remove "0x" prefix if present
|
||
|
|
hexStr = strings.TrimPrefix(hexStr, "0x")
|
||
|
|
hexStr = strings.TrimPrefix(hexStr, "0X")
|
||
|
|
|
||
|
|
// Parse hex string to uint64
|
||
|
|
value, err := strconv.ParseInt(hexStr, 16, 64)
|
||
|
|
if err != nil {
|
||
|
|
return 0, err
|
||
|
|
}
|
||
|
|
|
||
|
|
return value, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func HexToUint64(hexStr string) (uint64, error) {
|
||
|
|
// Remove "0x" prefix if present
|
||
|
|
hexStr = strings.TrimPrefix(hexStr, "0x")
|
||
|
|
hexStr = strings.TrimPrefix(hexStr, "0X")
|
||
|
|
|
||
|
|
// Parse hex string to uint64
|
||
|
|
value, err := strconv.ParseUint(hexStr, 16, 64)
|
||
|
|
if err != nil {
|
||
|
|
return 0, err
|
||
|
|
}
|
||
|
|
|
||
|
|
return value, nil
|
||
|
|
}
|