summaryrefslogtreecommitdiffstatshomepage
path: root/16_for2.zig
blob: 4b01b8693b5cccfc230553665ed816e75c932a71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//
// 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| {
//         // Do something with item and index
//     }
//
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
    // the value of the place as a power of two for each bit. See if
    // you can figure out the missing piece:
    //
    for (bits) |bit, ???| {
        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});
}