题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
package main import ( "fmt" "strconv" "strings" ) func main() { var ip1 string fmt.Scanln(&ip1) fmt.Println(ipToDecimal(ip1)) var ip2 string fmt.Scanln(&ip2) decimalIP, _ := strconv.ParseUint(ip2, 10, 32) binaryIP := fmt.Sprintf("%032b", decimalIP) octets := []string{} for i := 0; i < len(binaryIP); i += 8 { octet, _ := strconv.ParseUint(binaryIP[i:i+8], 2, 32) octets = append(octets, strconv.FormatUint(octet, 10)) } realIP := strings.Join(octets, ".") fmt.Println(realIP) } func ipToDecimal(ip string) int64 { segments := strings.Split(ip, ".") var binary string for _, segment := range segments { num, _ := strconv.Atoi(segment) binary += fmt.Sprintf("%08b", num) } decimal, _ := strconv.ParseInt(binary, 2, 64) return decimal }