From 245127814655732a9eaac2d1bd9798092777da15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=98=9F=E8=BE=B0?= <9159578+Liuxc_Mr@user.noreply.gitee.com> Date: Fri, 22 Apr 2022 11:25:52 +0000 Subject: [PATCH] =?UTF-8?q?add=20homework/=E7=AC=AC=E4=B8=80=E5=91=A8/Go-8?= =?UTF-8?q?031/main.go.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Go-8031/main.go" | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 "homework/\347\254\254\344\270\200\345\221\250/Go-8031/main.go" diff --git "a/homework/\347\254\254\344\270\200\345\221\250/Go-8031/main.go" "b/homework/\347\254\254\344\270\200\345\221\250/Go-8031/main.go" new file mode 100644 index 0000000..87e65c1 --- /dev/null +++ "b/homework/\347\254\254\344\270\200\345\221\250/Go-8031/main.go" @@ -0,0 +1,31 @@ +package main + +import ( + "fmt" + "math" + "strings" +) + +//输出一个int32对应的二进制表示 +func BinaryFormat(n int32) string { + a := uint32(n) //有符号转为无符号 + sb := strings.Builder{} //把多个短字符串拼接成一个长字符串 + c := uint32(math.Pow(2, 31)) //最高位是1,其他位全是0 + + for i := 0; i < 32; i++ { + if a&c != 0 { + sb.WriteString("1") //往sb后面拼接“1” + } else { + sb.WriteString("0") //往sb后面拼接“0” + } + c >>= 1 + } + return sb.String() //返回长度为32的字符串 +} + +func main() { + fmt.Println(BinaryFormat(2)) + fmt.Println(BinaryFormat(-2)) + fmt.Println(BinaryFormat(20)) + fmt.Println(BinaryFormat(200)) +} -- Gitee