RosettaCodeData/Task/Gray-code/Rust/gray-code.rust

20 lines
312 B
Text
Raw Normal View History

2014-04-02 16:56:35 +00:00
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));
}
}