43 lines
692 B
Go
43 lines
692 B
Go
package main
|
|
|
|
func main() {
|
|
println(mask(1))
|
|
println(mask_shl(127, 5))
|
|
println(mask_shl8(127, 5))
|
|
println(mask_shl8u(127, 5))
|
|
println(mask_shl8(127, 16))
|
|
println(mask_shl8u(127, 16))
|
|
println(mask_shr(127, 5))
|
|
println(mask_shr8(127, 5))
|
|
println(mask_shr8u(127, 5))
|
|
println(mask_shr8(127, 16))
|
|
}
|
|
|
|
func mask(x int8) int32 {
|
|
return int32(x) << 31 >> 31
|
|
}
|
|
|
|
func mask_shl8(x int8, y int) int8 {
|
|
return x << y
|
|
}
|
|
|
|
func mask_shl8u(x uint8, y int) uint8 {
|
|
return x << y
|
|
}
|
|
|
|
func mask_shl(x int, y int) int {
|
|
return x << y
|
|
}
|
|
|
|
func mask_shr8(x int8, y int) int8 {
|
|
return x >> y
|
|
}
|
|
|
|
func mask_shr8u(x uint8, y int) uint8 {
|
|
return x >> y
|
|
}
|
|
|
|
func mask_shr(x int, y int) int {
|
|
return x >> y
|
|
}
|