0Pricing
Zig Academy · レッスン

u3のような任意ビット幅整数

ビット幅を正確に指定した数値型を使います

「u3のような任意ビット幅整数」はCoddyKit上の無料Zig Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはZig Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Zig Academyコースには全4レッスンが含まれています。

u8とu32の先へ

Zigで使えるサイズは一般的なものだけではありません。u1から非常に大きな値まで、任意のビット幅の整数を指定できます。

uNパターン

u の後ろに数値を記述すると、そのビット数ちょうどの符号なし整数を取得できます。たとえば u3 は3ビットを保持します。

const level: u3 = 5;

符号付きの型もある

uをiに置き換えると、任意の幅の符号付き整数を取得できます。たとえば i4 は小さな符号付き範囲を表します。

const delta: i4 = -3;

範囲を正確に制御する

u3 は0から7までの値を格納します。3ビットで8通りを表せるためです。型自体がその範囲を保証します。

上限と下限を確認する

自分で覚えておく代わりに、maxInt と minInt を使って型の境界値を取得できます。

const hi = std.math.maxInt(u3); // 7
const lo = std.math.minInt(u3); // 0

1ビットの整数もある

u1 は0または1だけを保持し、直接保存や計算ができる単一の生ビットのように機能します。

const bit: u1 = 1;

u0も実在する型

u0 も存在します。値は常に0で、ビットをまったく占有しません。ジェネリックコードで便利です。

パックされたフィールドに最適

u3やu5のような通常とは異なる幅は、packed struct の中で特に有効です。各フィールドに必要なビットだけを正確に割り当てられます。

const Color = packed struct {
    r: u5,
    g: u6,
    b: u5,
};

オーバーフローに注意する

u3 に8を代入すると範囲を超えてオーバーフローします。安全モードでは、Zigが暗黙にラップさせず、実行時にこれを検出します。

キャストして幅を広げる

より広い範囲で計算したい場合は、@as または @intCast を使って、狭い型の値を広い型へ移します。

const small: u3 = 5;
const big: u16 = @as(u16, small);

意図を表現する

任意のビット幅を使うと、型システムに実際の制約を記録できます。u4 なら、値が15を超えないことが明確になります。🎯

確認問題

3ビットに何種類の異なる値を格納できるか考えてみてください。

まとめ

u3やi4のような任意幅整数について学びました。範囲を正確に指定でき、パックされたフィールドに最適で、安全モードではオーバーフローも検出されます。🎉

よくある質問

「u3のような任意ビット幅整数」レッスンは無料ですか?

はい。「u3のような任意ビット幅整数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Zig Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Zig Academyコースには全4レッスンが含まれています。

「u3のような任意ビット幅整数」で何を学びますか?

ビット幅を正確に指定した数値型を使います ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Zig Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのZig Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「u3のような任意ビット幅整数」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このZig Academyレッスンでコードを書いて実行できますか?

はい。すべてのZig Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 正確なレイアウトのためのpacked struct
  2. u3のような任意ビット幅整数
  3. ビットフィールドとフラグ
  4. extern structとABIレイアウト
← Zig Academyに戻る