PR3-Rust-SS26/B-basics/4-arithmetik.rs

37 lines
1.1 KiB
Rust

#[allow(non_snake_case)] // Dafür da, dass moduloInKurz ohne Meckern geschrieben werden kann
#[allow(overflowing_literals)] // Für Overflow Spaß
// Casting auch hier
fn main() {
// Grundrechenarten sind alle wie in anderen Sprachen, nichts spannendes
let summe: i32 = 12 + 23;
let differenz: i32 = summe - 10;
let produkt: i32 = differenz * summe;
let quotient: i32 = produkt / differenz;
let modulo: i32 = quotient % 2;
println!("{summe}");
println!("{differenz}");
println!("{produkt}");
println!("{quotient}");
println!("{modulo}");
// modulo benötigt jetzt keine 32 Bits, man kann es auch in i8 packen
let moduloInKurz = modulo as i8;
println!("{moduloInKurz}");
// Man kann aber auch witzigere Sachen machen
println!("{}", 10000000 as u8);
// Casting mit Overflow ist dank der oberen Präprozessoranweisung möglich
let integer: i32 = -1234;
let unsigned = integer as u8;
println!("{unsigned}");
// Problemloses casten in char ist mit as nur möglich, wenn der Ursprungswert ein u8 ist
let character = unsigned as char;
println!("{character}");
}