package cap3 // Ex9t1 整数拆解为2的幂之和(返回整数的二进制bit取值情况,bit的idx对应相应的幂) func Ex9t1(num int) []bool { // 传进来的是int,一般是32bit,这里就用64来存bit,肯定够了 bits := make([]bool, 0, 64) for i := 0; num != 0; i++ { bits = append(bits, num%2 == 1) num /= 2 } return bits } // Ex9t2 整数拆解为2的幂之和(返回幂取值) func Ex9t2(num int) []uint8 { // 传进来的是int,一般是32bit,这里就用64来存bit,肯定够了 bits := make([]uint8, 0, 64) for i := uint8(0); num != 0; i++ { if num%2 == 1 { bits = append(bits, i) } num /= 2 } return bits }