CodeBlanks Logo Icon CodeBlanks

Tamsayılar

i32, u64 gibi işaretli ve işaretsiz tamsayı türlerini öğrenirsin.

Tamsayılar

Rust tam sayıları işaretli (i8, i16, i32, i64, i128) ve işaretsiz (u8 … u128) olarak ayırır; sayı bit genişliğidir. isize/usize işlemci genişliğindedir ve dizinlerde kullanılır. Varsayılan i32'dir.

let a: u8 = 255;          // 0..=255
let b: i8 = -128;         // -128..=127
let buyuk = 1_000_000;    // _ okunurluk içindir
let hex = 0xff;           // 255

u8 bir bayt için idealdir; kimlik ve sayaçlar için çoğunlukla u32/u64 seçilir.

Taşma ve açık davranış

Çalışma anındaki taşma debug derlemede panic üretir. Davranışı açıkça seçmek için yöntemler kullanılır:

let x: u8 = 250;
println!("{:?}", x.checked_add(10));   // None
println!("{}", x.wrapping_add(10));     // 4
println!("{}", x.saturating_add(10));   // 255

Para ve sayaç hesaplarında checked_* yöntemleri taşmayı hata olarak yakalamanı sağlar.

Uygulama Taşma yöntemleri

let x: u8 = 250; için x.checked_add(10), x.wrapping_add(10) ve x.saturating_add(10) sonuçlarını println!("{:?} {} {}", ...) ile yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn main() {
    let x: u8 = 250;
    println!("{:?} {} {}", x.checked_add(10), x.wrapping_add(10), x.saturating_add(10));
}

Beklenen çıktı

None 4 255

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>let x: u8 = 256;</code> ne olur?

  • Çalışma anında panic
  • Derleme hatası: değer aralık dışında Doğru cevap
  • x 0 olur
  • x 255 olur

Açıklama: u8 en fazla 255 tutar; derleyici sabit değerin taşmasını derleme anında reddeder.

2 Doyum toplamı

Soru
let x: u8 = 250;
let y = x.____(10);  // 255
Cevap
let x: u8 = 250;
let y = x.saturating_add(10);  // 255

Açıklama: saturating_add taşma olursa türün en büyük değerinde durur.

3 Tür ve aralık

Kavram Anlamı
u8 0..=255
i8 -128..=127
usize Dizin türü
i32 Varsayılan tam sayı

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma