132 lines
4.1 KiB
Go
132 lines
4.1 KiB
Go
|
|
/*
|
|||
|
|
* @Author : huangzj
|
|||
|
|
* @Time : 2020/12/3 14:11
|
|||
|
|
* @Description:
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
package bitOperation
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"fmt"
|
|||
|
|
"testing"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
func TestBitTool(t *testing.T) {
|
|||
|
|
JudgeIfEvenTest()
|
|||
|
|
JudgeIfOddTest()
|
|||
|
|
JudgeOneWithPositionTest()
|
|||
|
|
JudgeOnlyOneBitWithOneTest()
|
|||
|
|
JudgeWithEqualSymbolTest()
|
|||
|
|
SetOneByPositionTest()
|
|||
|
|
SetZeroBuPositionTest()
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func SetZeroBuPositionTest() {
|
|||
|
|
fmt.Println("设置某个位置上的元素为0")
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 1))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetZeroBuPosition(1, 1)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 10))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetZeroBuPosition(10, 2)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 20))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetZeroBuPosition(20, 5)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 101))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetZeroBuPosition(101, 6)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 20121))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetZeroBuPosition(20121, 8)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 821331))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetZeroBuPosition(821331, 12)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 821331))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetZeroBuPosition(821331, 3)))
|
|||
|
|
fmt.Println()
|
|||
|
|
fmt.Println()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func SetOneByPositionTest() {
|
|||
|
|
fmt.Println("设置某个位置上的元素为1")
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 2))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetOneByPosition(2, 1)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 10))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetOneByPosition(10, 1)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 20))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetOneByPosition(20, 1)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 101))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetOneByPosition(101, 4)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 20121))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetOneByPosition(20121, 6)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 821331))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetOneByPosition(821331, 11)))
|
|||
|
|
fmt.Println(fmt.Sprintf("原始: %16b", 821331))
|
|||
|
|
fmt.Println(fmt.Sprintf("结果:%16b", SetOneByPosition(821331, 2)))
|
|||
|
|
|
|||
|
|
fmt.Println()
|
|||
|
|
fmt.Println()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func JudgeWithEqualSymbolTest() {
|
|||
|
|
fmt.Println("判断两个数正负符号是否一致")
|
|||
|
|
fmt.Println(JudgeWithEqualSymbol(10, 20))
|
|||
|
|
fmt.Println(JudgeWithEqualSymbol(10, -20))
|
|||
|
|
fmt.Println(JudgeWithEqualSymbol(-10, -20))
|
|||
|
|
fmt.Println()
|
|||
|
|
fmt.Println()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func JudgeOneWithPositionTest() {
|
|||
|
|
fmt.Println("判断二进制表示的某个位上是否为1")
|
|||
|
|
fmt.Println(fmt.Sprintf("%16b", 1))
|
|||
|
|
fmt.Println(JudgeOneWithPosition(1, 1))
|
|||
|
|
fmt.Println(JudgeOneWithPosition(1, 2))
|
|||
|
|
fmt.Println(fmt.Sprintf("%16b", 10))
|
|||
|
|
fmt.Println(JudgeOneWithPosition(10, 2))
|
|||
|
|
fmt.Println(JudgeOneWithPosition(10, 3))
|
|||
|
|
fmt.Println(fmt.Sprintf("%16b", 501))
|
|||
|
|
fmt.Println(JudgeOneWithPosition(501, 7))
|
|||
|
|
fmt.Println(JudgeOneWithPosition(501, 2))
|
|||
|
|
fmt.Println()
|
|||
|
|
fmt.Println()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func JudgeIfOddTest() {
|
|||
|
|
fmt.Println("奇数的判断")
|
|||
|
|
fmt.Println(JudgeIfOdd(1))
|
|||
|
|
fmt.Println(JudgeIfOdd(2))
|
|||
|
|
fmt.Println(JudgeIfOdd(101))
|
|||
|
|
fmt.Println(JudgeIfOdd(200))
|
|||
|
|
fmt.Println(JudgeIfOdd(91231))
|
|||
|
|
fmt.Println(JudgeIfOdd(8321312))
|
|||
|
|
fmt.Println()
|
|||
|
|
fmt.Println()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func JudgeIfEvenTest() {
|
|||
|
|
fmt.Println("偶数的判断")
|
|||
|
|
fmt.Println(JudgeIfEven(1))
|
|||
|
|
fmt.Println(JudgeIfEven(2))
|
|||
|
|
fmt.Println(JudgeIfEven(101))
|
|||
|
|
fmt.Println(JudgeIfEven(200))
|
|||
|
|
fmt.Println(JudgeIfEven(91231))
|
|||
|
|
fmt.Println(JudgeIfEven(8321312))
|
|||
|
|
fmt.Println()
|
|||
|
|
fmt.Println()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func JudgeOnlyOneBitWithOneTest() {
|
|||
|
|
fmt.Println("判断二进制表示是不是只有一个位为1")
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(1))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(2))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(3))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(4))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(56))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(64))
|
|||
|
|
fmt.Println()
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(-1))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(-2))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(-3))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(-4))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(-56))
|
|||
|
|
fmt.Println(JudgeOnlyOneBitWithOne(-64))
|
|||
|
|
fmt.Println()
|
|||
|
|
fmt.Println()
|
|||
|
|
}
|