package main
import (
"fmt"
"strings"
)
//传入2个切片判断元素是否相等
func bsEqual(arr, brr []byte) bool {
if len(arr) == len(brr) {
for i := 0; i < len(arr); i++ {
a, b := arr[i], brr[i]
fmt.Println(a, b)
if a == b {
fmt.Println("元素相同")
} else {
return false
}
}
}
return false
}
//传入切片不够8位用0补齐
func Padding(originSlice []byte) []byte {
for {
old_num := float64(len(originSlice))
// fmt.Println("入参数", old_num)
value := old_num / float64(8)
// fmt.Println("计算后参数", mew_num)
f := fmt.Sprintf("%v", value) //str 1.125
// fmt.Println(f, "str转换后判断是否有.")
if strings.Contains(f, ".") {
// fmt.Println("需要补位")
originSlice = append(originSlice, 0)
continue
}
return originSlice
}
}
//传入padding切片返回原有切片
func UnPadding(paddedSlice []byte) []byte {
count := len(paddedSlice) - 1
for {
if paddedSlice[count] == 0 {
count -= 1
continue
} else {
return paddedSlice[:count+1]
}
}
//反转切片
/*
for i, j := 0, len(paddedSlice)-1; i < j; i, j = i+1, j-1 {
paddedSlice[i], paddedSlice[j] = paddedSlice[j], paddedSlice[i]
}
// fmt.Println(paddedSlice)
// return paddedSlice
}
*/
func main() {
//1
arr1 := []byte{1, 2, 3}
brr := []byte{1, 2, 0}
fmt.Println(bsEqual(arr1, brr))
//2
arr2 := []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
fmt.Println(Padding(arr2))
fmt.Println(UnPadding(Padding(arr2)))
}