ArrayBuffer and TypedArrays Demo by Troy Whorten 3/27/2014 <br>Enter a number, any number: <br> <input type="text" onkeyup="document.getElementById('target').innerHTML=''; number(this.value);" /> <div id="target"></div>
//by Troy Whorten 3/27/2014 function write(str1, str2) { var doc = document.getElementById('target'); var pre = document.createElement('span'); var el = document.createElement('span'); var br = document.createElement('br'); pre.innerHTML = str1; pre.style.color = "black"; el.innerHTML = str2; el.style.color = "blue"; doc.appendChild(pre); doc.appendChild(el); doc.appendChild(br); } function number(num) { var ab = new ArrayBuffer(8); var dv = new DataView(ab); var abInt8 = new Int8Array(ab, 0, 8); var abInt16 = new Int16Array(ab, 0, 4); var abInt32 = new Int32Array(ab, 0, 2); var abUint8 = new Uint8Array(ab, 0, 8); var abUint16 = new Uint16Array(ab, 0, 4); var abUint32 = new Uint32Array(ab, 0, 2); var abF32 = new Float32Array(ab, 0, 2); var abF64 = new Float64Array(ab, 0, 1); write("Set first element of Float64 view = to number: ",""); abF64[0]=num; var dump = ""; for (var i = 0; i < abInt8.length; i++) dump += "[" + abInt8[i] + "]"; write("Int8: ", dump); dump = ""; for (var i = 0; i < abInt16.length; i++) dump += "[" + abInt16[i] + "]"; write("Int16: ", dump); dump = ""; for (var i = 0; i < abInt32.length; i++) dump += "[" + abInt32[i] + "]"; write("Int32: ", dump); var dump = ""; for (var i = 0; i < abUint8.length; i++) dump += "[" + abUint8[i] + "]"; write("Uint8: ", dump); dump = ""; for (var i = 0; i < abUint16.length; i++) dump += "[" + abUint16[i] + "]"; write("Uint16: ", dump); dump = ""; for (var i = 0; i < abUint32.length; i++) dump += "[" + abUint32[i] + "]"; write("Uint32: ", dump); dump = ""; for (var i = 0; i < abF32.length; i++) dump += "[" + abF32[i] + "]"; write("Float32: ", dump); dump = ""; for (var i = 0; i < abF64.length; i++) dump += "[" + abF64[i] + "]"; write("Float64: ", dump); var dv = new DataView(ab); write("Data View Float64 (little Endian): ", dv.getFloat64(0,true)); write("Data View Float64 (big Endian): ", dv.getFloat64(0,false)); write("",""); write("Reset, set Int32[0] to num and Int32[1] to -num: ",""); abF64[0]=0; abInt32[0]=num; abInt32[1]=-num; var dump = ""; for (var i = 0; i < abInt8.length; i++) dump += "[" + abInt8[i] + "]"; write("Int8: ", dump); dump = ""; for (var i = 0; i < abInt16.length; i++) dump += "[" + abInt16[i] + "]"; write("Int16: ", dump); dump = ""; for (var i = 0; i < abInt32.length; i++) dump += "[" + abInt32[i] + "]"; write("Int32: ", dump); var dump = ""; for (var i = 0; i < abUint8.length; i++) dump += "[" + abUint8[i] + "]"; write("Uint8: ", dump); dump = ""; for (var i = 0; i < abUint16.length; i++) dump += "[" + abUint16[i] + "]"; write("Uint16: ", dump); dump = ""; for (var i = 0; i < abUint32.length; i++) dump += "[" + abUint32[i] + "]"; write("Uint32: ", dump); dump = ""; for (var i = 0; i < abF32.length; i++) dump += "[" + abF32[i] + "]"; write("Float32: ", dump); dump = ""; for (var i = 0; i < abF64.length; i++) dump += "[" + abF64[i] + "]"; write("Float64: ", dump); var dv = new DataView(ab); write("Data View Float64 (little Endian): ", dv.getFloat64(0,true)); write("Data View Float64 (big Endian): ", dv.getFloat64(0,false)); }