Skip to content

Commit cd03f18

Browse files
committed
updateNumber now takes arguments object to allow significand override
1 parent 68b9441 commit cd03f18

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

lib/bits.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,18 +78,28 @@ function classNamesToBinaryString( binaryString, bitSpan ) {
7878
return binaryString;
7979
}
8080

81-
function updateNumber( exponent ) {
81+
function updateNumber( values ) {
8282
var b = "";
8383

84+
var exponent, significand;
85+
if (values) {
86+
exponent = values.exponent;
87+
significand = values.significand;
88+
}
89+
8490
if (typeof exponent == "number") {
8591
exponent = ieee754.intToBinaryString( exponent, 11 );
8692
} else {
8793
exponent = bitsExponent.reduce( classNamesToBinaryString, "" );
8894
}
8995

96+
if (typeof significand != "string") {
97+
significand = bitsSignificand.reduce( classNamesToBinaryString, "" );
98+
}
99+
90100
b += bitsSign.reduce( classNamesToBinaryString, "" );
91101
b += exponent;
92-
b += bitsSignificand.reduce( classNamesToBinaryString, "" );
102+
b += significand;
93103

94104
var f = ieee754.binaryStringToFloat64( b );
95105
setNumberInputValue( f );
@@ -259,7 +269,7 @@ numberInput.addEventListener("keydown", function ( event ) {
259269

260270
pointSlider.addEventListener( "change", function() {
261271
var exponent = Number(pointSlider.value);
262-
updateNumber( exponent );
272+
updateNumber( { exponent: exponent } );
263273
}, false);
264274

265275
pointSlider.addEventListener( "click", function() {
@@ -339,7 +349,7 @@ function getCurrentExponentValue() {
339349

340350
function updateExponentValue( value ) {
341351
var exponent = Number(value);
342-
updateNumber( exponent );
352+
updateNumber( { exponent: exponent } );
343353
}
344354
dynks( exponentElement, getCurrentExponentValue, updateExponentValue );
345355

@@ -349,7 +359,7 @@ function getCurrentExponentNormalizedValue() {
349359

350360
function updateExponentNormalizedValue( value ) {
351361
var exponent = Number(value);
352-
updateNumber( exponent + 1023 );
362+
updateNumber( { exponent: exponent + 1023 } );
353363
}
354364
dynks( exponentNormalizedElement, getCurrentExponentNormalizedValue, updateExponentNormalizedValue );
355365

@@ -378,6 +388,8 @@ document.addEventListener("keyup", function( event ){
378388
break;
379389
case "S": visualization.classList.toggle("show-significand-overflow");
380390
break;
391+
case "X": updateNumber( { significand: "1111111111111111111111111111111111111111111111111111"} );
392+
break;
381393
case "E": visualization.classList.remove( "expanded" );
382394
visualization.classList.add( "final" );
383395
break;

0 commit comments

Comments
 (0)