1. 程式人生 > >易學筆記-Go語言-第4章:基本結構和基本資料型別/4.5 基本型別/4.5.2 整形

易學筆記-Go語言-第4章:基本結構和基本資料型別/4.5 基本型別/4.5.2 整形

  •  整形
  1. 固定位元組數整形:與作業系統無關
    1. int 和 uint 在 32 位作業系統上,它們均使用 32 位(4 個位元組),在 64 位作業系統上,它們均使用 64 位(8 個位元組)。
    2. uintptr 存放指標
  2. 指定位元組數整形
    1. int8:用8個位表示,負數最高位為1,正數最高位0,所以最小負數是2的8次方,也就是-128,最大正數是2的0次方、2的0次方。。。2的6次方之和,結果是127
    2. int16:用16個位表示,負數最高位為1,正數最高位0,同理可算範圍是:-32768 -> 3276
    3. int32:用32個位表示,負數最高位為1,正數最高位0,同理可算範圍是:-2,147,483,648 -> 2,147,483,647
    4. int64:用64個位表示,負數最高位為1,正數最高位0,同理可算範圍是:-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807
  3. 無符號指定位元組數整形
    1. uint8:最高1也表示是正數,所以最大值是2的8次方減去1,結果是255
    2. uint16:最高1也表示是正數,所以最大值是2的16次方減去1,結果是65535
    3. uint32:最高1也表示是正數,所以最大值是2的32次方減去1,結果是4294967295
    4. uint64:最高1也表示是正數,所以最大值是2的64次方減去1,結果是18446744073
  4. 整型運算
    1. 不同的整型型別不能運算
      1. 程式碼:
        var i1 int32 = 100
            var i2 int64 = 200
            //int32和int64不同型別
            fmt.Printf("i1+i2=%d\n", i1+i2)
      2. 結果輸出:

        .\main.go:31:29: invalid operation: i1 + i2 (mismatched types int32 and int64)  編譯報錯說是不同型別

    2. 強制轉換方可運算
      1. 程式碼:
        var i1 int32 = 100
        var i2 int64 = 200
        //int32和int64不同型別
        fmt.Printf("i1+i2=%d\n", int64(i1)+i2)
      2. 結果輸出:

        i1+i2=300