[Rust]整数型の最大値と最小値

rustの勉強ログです。

やりたいこと

ビットサイズごとの最大値と最小値を10進数でまとめました。

fn main() {
  let max_u8: u8 = 255;
  let max_u16: u16 = 65535;
  let max_u32: u32 = 4294967295;
  let max_u64: u64 = 18446744073709551615;
  let max_u128: u128 = 340282366920938463463374607431768211455;
  let max_usize: usize = 18446744073709551615;

  println!(
    "{}\n{}\n{}\n{}\n{}\n{}",
    max_u8, max_u16, max_u32, max_u64, max_u128, max_usize
  );

  let max_i8: i8 = 127;
  let max_i16: i16 = 32767;
  let max_i32: i32 = 2147483647;
  let max_i64: i64 = 9223372036854775807;
  let max_i128: i128 = 170141183460469231731687303715884105727;
  let max_isize: isize = 9223372036854775807;

  println!(
    "{}\n{}\n{}\n{}\n{}\n{}",
    max_i8, max_i16, max_i32, max_i64, max_i128, max_isize
  );

  let min_i8: i8 = -127;
  let min_i16: i16 = -32767;
  let min_i32: i32 = -2147483647;
  let min_i64: i64 = -9223372036854775807;
  let min_i128: i128 = -170141183460469231731687303715884105727;
  let min_isize: isize = -9223372036854775807;

  println!(
    "{}\n{}\n{}\n{}\n{}\n{}",
    min_i8, min_i16, min_i32, min_i64, min_i128, min_isize
  )
}


なぜか

普段仕事ではtypescriptを使っていて、基本的に数値はnumber一択でした。

rustではビットサイズと符合の有無で型を分類しています。ビットサイズの何となくのサイズ感は分かるのですが具体的な数値は知らなかったなと

  • 8ビットは255で符号がつくと±127になるというのが感覚的にすぐに出ない 

  • 32ビット以降は何となくデッカイ数字っていうくらいの感覚

ということもあって今回、実際にコンパイルが通る数値を確認してみました。

参考

Rust プログラムを初めて作成する - Training | Microsoft Learn


この記事が気に入ったらサポートをしてみませんか?