diff options
author | obrien <obrien@FreeBSD.org> | 2001-11-02 21:06:08 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2001-11-02 21:06:08 +0000 |
commit | cfe0e2b488d886d14fc1755679b8a88165b22d92 (patch) | |
tree | fbf9ca4d3f276e13b39090465008b182d20f0e5a /contrib/awk/awklib/eg/prog/testbits.awk | |
parent | 9682ea287751aa7aad9e21c50ba74cfb3d7314d0 (diff) | |
parent | 223f0286ad0612783e0da01de3b5bfdc52e3b25c (diff) | |
download | FreeBSD-src-cfe0e2b488d886d14fc1755679b8a88165b22d92.zip FreeBSD-src-cfe0e2b488d886d14fc1755679b8a88165b22d92.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r85898,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/awk/awklib/eg/prog/testbits.awk')
-rw-r--r-- | contrib/awk/awklib/eg/prog/testbits.awk | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/contrib/awk/awklib/eg/prog/testbits.awk b/contrib/awk/awklib/eg/prog/testbits.awk new file mode 100644 index 0000000..143cd91 --- /dev/null +++ b/contrib/awk/awklib/eg/prog/testbits.awk @@ -0,0 +1,27 @@ +# bits2str --- turn a byte into readable 1's and 0's + +function bits2str(bits, data, mask) +{ + if (bits == 0) + return "0" + + mask = 1 + for (; bits != 0; bits = rshift(bits, 1)) + data = (and(bits, mask) ? "1" : "0") data + + while ((length(data) % 8) != 0) + data = "0" data + + return data +} +BEGIN { + printf "123 = %s\n", bits2str(123) + printf "0123 = %s\n", bits2str(0123) + printf "0x99 = %s\n", bits2str(0x99) + comp = compl(0x99) + printf "compl(0x99) = %#x = %s\n", comp, bits2str(comp) + shift = lshift(0x99, 2) + printf "lshift(0x99, 2) = %#x = %s\n", shift, bits2str(shift) + shift = rshift(0x99, 2) + printf "rshift(0x99, 2) = %#x = %s\n", shift, bits2str(shift) +} |