update: bits example
This commit is contained in:
@ -7,7 +7,10 @@
|
|||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import "fmt"
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
// %b verb prints bits
|
// %b verb prints bits
|
||||||
@ -43,4 +46,46 @@ func main() {
|
|||||||
fmt.Printf("%08b = %d\n", 32, 32)
|
fmt.Printf("%08b = %d\n", 32, 32)
|
||||||
fmt.Printf("%08b = %d\n", 64, 64)
|
fmt.Printf("%08b = %d\n", 64, 64)
|
||||||
fmt.Printf("%08b = %d\n", 128, 128)
|
fmt.Printf("%08b = %d\n", 128, 128)
|
||||||
|
|
||||||
|
// ------------------------------------------------
|
||||||
|
// How to calculate bits?
|
||||||
|
// ------------------------------------------------
|
||||||
|
|
||||||
|
// note: ^ means power of.
|
||||||
|
// for example: 2^2 means 2 * 2 = 4
|
||||||
|
// or: 2^3 means 2 * 2 * 2 = 8
|
||||||
|
|
||||||
|
// 0 0 0 0 0 0 1 0 is equal to 2 because:
|
||||||
|
// ^ ^ ^ ^ ^ ^ ^ ^
|
||||||
|
// | | | | | | | |
|
||||||
|
// | | | | | | | +-> 2^0 * 0 = 0
|
||||||
|
// | | | | | | +---> 2^1 * 1 = 2
|
||||||
|
// | | | | | +-----> 2^2 * 0 = 0
|
||||||
|
// | | | | +-------> 2^3 * 0 = 0
|
||||||
|
// | | | +---------> 2^4 * 0 = 0
|
||||||
|
// | | +-----------> 2^5 * 0 = 0
|
||||||
|
// | +-------------> 2^6 * 0 = 0
|
||||||
|
// +---------------> 2^7 * 0 = 0
|
||||||
|
// ------------+
|
||||||
|
// 2
|
||||||
|
|
||||||
|
i, _ := strconv.ParseInt("00000010", 2, 64)
|
||||||
|
fmt.Println(i)
|
||||||
|
|
||||||
|
// 0 0 0 1 0 1 1 0 is equal to 2 because:
|
||||||
|
// ^ ^ ^ ^ ^ ^ ^ ^
|
||||||
|
// | | | | | | | |
|
||||||
|
// | | | | | | | +-> 2^0 * 0 = 0
|
||||||
|
// | | | | | | +---> 2^1 * 1 = 2
|
||||||
|
// | | | | | +-----> 2^2 * 1 = 4
|
||||||
|
// | | | | +-------> 2^3 * 0 = 0
|
||||||
|
// | | | +---------> 2^4 * 1 = 16
|
||||||
|
// | | +-----------> 2^5 * 0 = 0
|
||||||
|
// | +-------------> 2^6 * 0 = 0
|
||||||
|
// +---------------> 2^7 * 0 = 0
|
||||||
|
// ------------+
|
||||||
|
// 22
|
||||||
|
|
||||||
|
i, _ = strconv.ParseInt("00010110", 2, 64)
|
||||||
|
fmt.Println(i)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user