计算
11. // 填空,并解决错误 fn main() {
// 整数加法
assert!(1u32 + 2 == __);
// 整数减法
assert!(1i32 - 2 == __); assert!(1u8 - 2 == -1);
assert!(3 * 50 == __);
assert!(9.6 / 3.2 == 3.0); // error ! 修改它让代码工作 assert!(24 % 5 == __);
// 逻辑与或非操作 assert!(true && false == __); assert!(true || false == __); assert!(!true == __);
// 位操作
println!("0011 AND 0101 is {:04b}", 0b0011u32 & 0b0101); println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101); println!("0011 XOR 0101 is {:04b}", 0b0011u32 ^ 0b0101); println!("1 << 5 is {}", 1u32 << 5);
println!("0x80 >> 2 is 0x{:x}", 0x80u32 >> 2);
} 你可以在这里找到答案(在 solutions 路径下) 🌟
字符、布尔、单元类型 字符
1.
// 修改2处 `assert_eq!` 让代码工作
use std::mem::size_of_val;
fn main() {
let c1 = 'a';
assert_eq!(size_of_val(&c1),1);
let c2 = '中'; assert_eq!(size_of_val(&c2),3);
println!("Success!")
}
2.
// 修改一行让代码正常打印 fn main() {
let c1 = "中";
print_char(c1);
}
fn print_char(c : char) {
println!("{}", c);
}
🌟
🌟
布尔
3.
// 使成功打印 fn main() {
let _f: bool = false;
let t = true;
if !t {
println!("Success!")
}
}
4.
fn main() {
let f = true;
let t = true && false;
assert_eq!(t, f);
println!("Success!")
}
单元类型
5.
🌟🌟
🌟
🌟
// 让代码工作,但不要修改 `implicitly_ret_unit` ! fn main() {
let _v: () = ();
let v = (2, 3);
assert_eq!(v, implicitly_ret_unit());
println!("Success!")
}
fn implicitly_ret_unit() {
println!("I will return a ()")
}
// 不要使用下面的函数,它只用于演示! fn explicitly_ret_unit() -> () {
println!("I will return a ()")
}
6. 单元类型占用的内存大小是多少? // 让代码工作:修改 `assert!` 中的 `4` use std::mem::size_of_val;
fn main() {
let unit: () = ();
assert!(size_of_val(&unit) == 4);
println!("Success!")
} 你可以在这里找到答案(在 solutions 路径下)