summaryrefslogtreecommitdiffstats
path: root/contrib/awk/awklib/eg/lib/bits2str.awk
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2001-11-02 21:06:08 +0000
committerobrien <obrien@FreeBSD.org>2001-11-02 21:06:08 +0000
commit223f0286ad0612783e0da01de3b5bfdc52e3b25c (patch)
treecd2c7fd87952f47d303b90e49b90c14bccf7e292 /contrib/awk/awklib/eg/lib/bits2str.awk
parent4e5281d00b8fa7447d70020d36660157e7e43626 (diff)
downloadFreeBSD-src-223f0286ad0612783e0da01de3b5bfdc52e3b25c.zip
FreeBSD-src-223f0286ad0612783e0da01de3b5bfdc52e3b25c.tar.gz
Update vendor branch to gawk-3.1.0.
Diffstat (limited to 'contrib/awk/awklib/eg/lib/bits2str.awk')
-rw-r--r--contrib/awk/awklib/eg/lib/bits2str.awk16
1 files changed, 16 insertions, 0 deletions
diff --git a/contrib/awk/awklib/eg/lib/bits2str.awk b/contrib/awk/awklib/eg/lib/bits2str.awk
new file mode 100644
index 0000000..9725ee8
--- /dev/null
+++ b/contrib/awk/awklib/eg/lib/bits2str.awk
@@ -0,0 +1,16 @@
+# 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
+}
OpenPOWER on IntegriCloud