You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
Zig
34 lines
1.0 KiB
Zig
4 years ago
|
//
|
||
|
// For loops also let you store the "index" of the iteration - a
|
||
|
// number starting with 0 that counts up with each iteration:
|
||
|
//
|
||
|
// for (items) |item, index| {
|
||
4 years ago
|
//
|
||
4 years ago
|
// // Do something with item and index
|
||
4 years ago
|
//
|
||
4 years ago
|
// }
|
||
|
//
|
||
4 years ago
|
// You can name "item" and "index" anything you want. "i" is a popular
|
||
|
// shortening of "index". The item name is often the singular form of
|
||
|
// the items you're looping through.
|
||
|
//
|
||
4 years ago
|
const std = @import("std");
|
||
|
|
||
|
pub fn main() void {
|
||
|
// Let's store the bits of binary number 1101 in
|
||
|
// 'little-endian' order (least significant byte first):
|
||
|
const bits = [_]u8{ 1, 0, 1, 1 };
|
||
|
var value: u32 = 0;
|
||
|
|
||
|
// Now we'll convert the binary bits to a number value by adding
|
||
4 years ago
|
// the value of the place as a power of two for each bit.
|
||
4 years ago
|
//
|
||
4 years ago
|
// See if you can figure out the missing piece:
|
||
4 years ago
|
for (bits) |bit, ???| {
|
||
4 years ago
|
var place_value = std.math.pow(u32, 2, @intCast(u32, i));
|
||
|
value += place_value * bit;
|
||
|
}
|
||
|
|
||
|
std.debug.print("The value of bits '1101': {}.\n", .{value});
|
||
|
}
|