34 строки
1.1 KiB
Go
34 строки
1.1 KiB
Go
|
package main
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
func main() {
|
||
|
var u uint8 = 255
|
||
|
fmt.Println(u, u+1, u*u) // 255 0 1
|
||
|
var i int8 = 127
|
||
|
fmt.Println(i, i+1, i*i) // 127 -128 1
|
||
|
|
||
|
var x uint8 = 1<<1 | 1<<5
|
||
|
var y uint8 = 1<<1 | 1<<2
|
||
|
fmt.Printf("%08b\n", x) // 00100010 множество 1,5
|
||
|
fmt.Printf("%08b\n", y) // 00000110 множество 1,2
|
||
|
fmt.Printf("%08b\n", x&y) // 00000010 пересечение 1
|
||
|
fmt.Printf("%08b\n", x|y) // 00100110 объеденение 1,2,5
|
||
|
fmt.Printf("%08b\n", x^y) // 00100100 симметричная разность 2,5
|
||
|
fmt.Printf("%08b\n", x&^y) // 00100000 расность 5
|
||
|
|
||
|
for index := uint(0); index < 8; index++ {
|
||
|
if x&(1<<index) != 0 { // проверка принадлежности множеству
|
||
|
fmt.Println(index) // 1 \n 5
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fmt.Printf("%08b\n", x<<1) // 01000100 множество 2,6
|
||
|
fmt.Printf("%08b\n", x>>1) // 00010001 множество 0,4
|
||
|
|
||
|
medals := []string{"золото", "серебро", "бронза"}
|
||
|
for index := len(medals) - 1; index >= 0; index-- {
|
||
|
fmt.Println(medals[index]) // "бронза", "серебро", "золото"
|
||
|
}
|
||
|
}
|