diff --git a/build.zig b/build.zig index 0739554..a0a73d7 100644 --- a/build.zig +++ b/build.zig @@ -302,6 +302,10 @@ const exercises = [_]Exercise{ .output = "Archer's Point--2->Bridge--1->Dogwood Grove--3->Cottage--2->East Pond--1->Fox Pond", .hint = "This is the biggest program we've seen yet. But you can do it!" }, + .{ + .main_file = "059_integers.zig", + .output = "Zig is cool.", + }, }; /// Check the zig version to make sure it can compile the examples properly. diff --git a/exercises/059_integers.zig b/exercises/059_integers.zig new file mode 100644 index 0000000..e72fa2f --- /dev/null +++ b/exercises/059_integers.zig @@ -0,0 +1,28 @@ +// +// Zig lets you express integer literals in several convenient +// formats. These are all the same value: +// +// const a1: u8 = 65; // decimal +// const a2: u8 = 0x41; // hexadecimal +// const a3: u8 = 0o101; // octal +// const a4: u8 = 0b1000001; // binary +// const a5: u8 = 'A'; // UTF-8 code point literal +// +// You can also place underscores in numbers to aid readability: +// +// const t1: u32 = 14_689_520 // Ford Model T sales 1909-1927 +// const t2: u32 = 0xE0_24_F0 // same, in hex pairs +// +// Please fix the message: + +const print = @import("std").debug.print; + +pub fn main() void { + var zig = [_]u8 { + 0o131, // octal + 0b1101000, // binary + 0x66, // hex + }; + + print("{s} is cool.\n", .{zig}); +} diff --git a/patches/patches/059_integers.patch b/patches/patches/059_integers.patch new file mode 100644 index 0000000..50a89a0 --- /dev/null +++ b/patches/patches/059_integers.patch @@ -0,0 +1,8 @@ +22,24c22,24 +< 0o131, // octal +< 0b1101000, // binary +< 0x66, // hex +--- +> 0o132, // octal +> 0b1101001, // binary +> 0x67, // hex