RosettaCodeData/Task/Gray-code/Rust/gray-code.rust
2014-04-02 16:56:35 +00:00

19 lines
312 B
Text

fn gray_encode(integer: uint) -> uint {
(integer >> 1) ^ integer
}
fn gray_decode(integer: uint) -> uint {
match integer {
0 => 0,
_ => integer ^ gray_decode(integer >> 1)
}
}
fn main() {
for i in range(0u,32u) {
println!("{:2} {:0>5t} {:0>5t} {:2}", i, i, gray_encode(i),
gray_decode(i));
}
}