1. 程式人生 > >uint 與 int 的區別 (golang語言)

uint 與 int 的區別 (golang語言)

上面是圖,下面是原始碼:

package main

import (
	"fmt"
	_ "time"
)

func main() {
	a := byte(255)  //11111111 這是byte的極限, 因為 a := byte(256)//越界報錯, 0~255正好256個數,不能再高了
	b := uint8(255) //11111111 這是uint8的極限,因為 c := uint8(256)//越界報錯,0~255正好256個數,不能再高了
	c := int8(127)  //01111111 這是int8的極限, 因為 b := int8(128)//越界報錯, 0~127正好128個數,所以int8的極限只是256的一半
	d := int8(a)    //11111111 打印出來則是-0000001,int8(128)、int8(255)、int8(byte(255))都報錯越界,因為int極限是127,但是卻可以寫:int8(a),第一位拿來當符號了
	e := int8(c)    //01111111 打印出來還是01111111

	fmt.Printf("%08b %d \n", a, a)
	fmt.Printf("%08b %d \n", b, b)
	fmt.Printf("%08b %d \n", c, c)
	fmt.Printf("%08b %d \n", d, d)
	fmt.Printf("%08b %d \n", e, e)
}