Bits from integers 0-255
Inspired by http://weblog.bocoup.com/getting-bitwise-with-javascript/
by secretgspot
HTML
<div>
<table>
<tr>
<th class="dec">dec.</th>
<th>128</th>
<th>64</th>
<th>32</th>
<th>16</th>
<th>8</th>
<th>4</th>
<th>2</th>
<th>1</th>
</tr>
<tr>
<td class="dec" id="dec"></td>
<td class="bit" id="bit-128"></td>
<td class="bit" id="bit-64"></td>
<td class="bit" id="bit-32"></td>
<td class="bit" id="bit-16"></td>
<td class="bit" id="bit-8"></td>
<td class="bit" id="bit-4"></td>
<td class="bit" id="bit-2"></td>
<td class="bit" id="bit-1"></td>
</tr>
</table>
</div>
CSS
body {
margin: 0.5em;
margin-left: 0;
}
table {
width: 100%;
border-collapse: separate;
margin-bottom: 0.6em;
}
th,
td {
width: 10%;
text-align: center;
border: 1px solid #fff;
}
.dec {
width: 1%;
text-align: right;
padding: 0 0.5em;
}
.bit {
color: #fff;
}
.bit.one {
background: green;
}
.bit.zero {
background: red;
}
JavaScript
var next = $("table tr").eq(1);
var dec = $("#dec");
function render(n) {
next.clone().children().removeProp("id").end().insertAfter(next);
dec.html(n);
var bitmask, bit;
for (bitmask = 1; bitmask <= 128; bitmask <<= 1) {
bit = n & bitmask ? 1 : 0;
$("#bit-" + bitmask)
.html(bit)
.toggleClass("one", Boolean(bit))
.toggleClass("zero", !bit);
}
}
var num = 0;
var id = setInterval(function() {
if (num === 255) {
clearInterval(id);
}
render(num++);
}, 100);