Ваш пример довольно наглядный, но к сожалению в нем не выполняется бинарный оператор, что для меня более важно.
И я не понял для чего это
var R = ("9");
var R1=R.charCodeAt();
var R2=255-R1;
alert(replac(R1.toString(2))+'\n'+replac(R2.toString(2))+'\n\n'+R1.toString(16)+'\n'+R2.toString(16));
Я сделал так
<style>
.a01 td {border-left: 1px solid black; text-align: right;}
.a01 tr {border-top: 1px solid black;}
</style>
<script>
Punycode = function()
{
Er = false;
function nul32 (m,n)
{
var nu = "";
for(var i=0; i<n; i++) nu += "0";
return ((m.indexOf("-") != -1)? "-":"")+(nu.slice(0,((m.indexOf("-") != -1)?n+1:n)-m.length).concat((m.indexOf("-") != -1)?m.substring(1):m));
}
function litBig(R,s)
{
var R1 = R.charCodeAt();
var R2 = (R1 << 1);
var R3 = (R1 >> 1);
var R4 = ~(R1);
var Rs = "<tr style='border-top: 1px solid black;'><td>" + R + "</td><td>" + nul32(R1.toString(10),4) + "</td><td>" + nul32(R1.toString(2),32) + "</td><td>" + nul32(R1.toString(16),4) + "</td><td>" + String.fromCharCode(R1.toString(10)) + "</td></tr>";
Rs += "<tr><td>" + "~" + "</td><td>" + nul32(R4.toString(10),4) + "</td><td>" + nul32(R4.toString(2),32) + "</td><td>" + nul32(R4.toString(16),4) + "</td><td>" + String.fromCharCode(R4.toString(10)) + "</td></tr>";
Rs += "<tr><td>" + "<< 1" + "</td><td>" + nul32(R2.toString(10),4) + "</td><td>" + nul32(R2.toString(2),32) + "</td><td>" + nul32(R2.toString(16),4) + "</td><td>" + String.fromCharCode(R2.toString(10)) + "</td></tr>";
Rs += "<tr><td>" + ">> 1" + "</td><td>" + nul32(R3.toString(10),4) + "</td><td>" + nul32(R3.toString(2),32) + "</td><td>" + nul32(R3.toString(16),4) + "</td><td>" + String.fromCharCode(R3.toString(10)) + "</td></tr>";
return Rs;
}
return {
inp: function (d)
{
var m = "<table class='a01'>";
for(var i=0; i<d.length; i++)
{
m += litBig(d[i]) + "";
}
m += "</table>";
if(Er) { document.getElementById("PunycodeError").innerHtml = ""; }
document.getElementById("Punycode").innerHTML = m;
},
}
}();
</script>
<div id="PunycodeError"></div>
<input onKeyUp="Punycode.inp(this.value);">
<div id="Punycode"></div>
Единственное, что мне не очень понятно, почему при " ~ " возвращает на 1 больше? Т.е. если R1 возвращает 0057, то R4 -0058