37 lines
1.1 KiB
Rust
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}");
|
|
|
|
|
|
}
|