golangでint型をuint型に変換する方法

PHPz
リリース: 2023-04-25 10:21:34
オリジナル
2172 人が閲覧しました

golang では、int と uint は 2 つの一般的な整数型です。使用するときに変換する必要があることがよくあります。特にビット演算などの演算を実行する場合は、特定の型の一致が必要です。int 型を uint 型に変換する方法はどうですか? ?

golang では基本的にすべての型変換は明示的な変換が必要であり、自動変換機能はありません。 int と uint 間の変換も同様で、キャストによって変換できます。

実際に一般的な int 型と uint 型の変換の例をいくつか次に示します。

package main

import (
    "fmt"
)

func main() {
    // 将int类型转换为uint类型
    var i int = -10
    var ui uint = uint(i)
    fmt.Printf("i=%d, ui=%d\n", i, ui)

    // 将uint类型转换为int类型
    var ui2 uint = 4294967286 //uint最大表示值减一
    var i2 int = int(ui2)
    fmt.Printf("ui2=%d, i2=%d\n", ui2, i2)
}
ログイン後にコピー

出力結果:

i=-10, ui=18446744073709551606
ui2=4294967286, i2=-10
ログイン後にコピー

int 型を uint に変換すると、このことがわかります。型処理では、負の数値は uint 型の最大値から絶対値を引いた値に変換され、1 が加算されます。これは、uint が符号なし整数型であり、負の数値を表現できないためです。 uint型からint型に変換する際にも、uint型の最大値をint型に変換すると負の数が得られるなど、オーバーフローが発生する場合があります。

符号付き整数型と符号なし整数型の間で変換する場合、いくつかの問題に注意する必要があります。たとえば、uint 型では、いわゆる「符号付き」整数、つまり変数が表示されることがあります。 uint 型にはマイナスの特性がある可能性があります。この場合、int 型を使用して uint 型を変換するとおかしな結果が発生する可能性があるため注意が必要です。

つまり、int 型と uint 型の変換は状況に応じて判断する必要があり、無用なエラーを避けるためにはデータ型の特性と範囲を十分に理解する必要があります。

以上がgolangでint型をuint型に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!