Per quanto ne so non è possibile utilizzare un denoter binario in Javascript. Ho tre soluzioni per te, tutte con i loro problemi. Penso che l'alternativa 3 sia la più "di bell'aspetto" per la leggibilità, ed è probabilmente molto più veloce del resto - tranne che per il suo costo iniziale di esecuzione. Il problema è che supporta solo valori fino a 255.
Alternativa 1: "00001111".b()
String.prototype.b = function() { return parseInt(this,2); }
Alternativa 2: b("00001111")
function b(i) { if(typeof i=='string') return parseInt(i,2); throw "Expects string"; }
Alternativa 3: b00001111
Questa versione consente di digitare binario a 8 cifre , 4 cifre b0000
e variab le cifre b0
. Questo è b01
è illegale, è necessario utilizzare b0001
o b1
.
String.prototype.lpad = function(padString, length) {
var str = this;
while (str.length < length)
str = padString + str;
return str;
}
for(var i = 0; i < 256; i++)
window['b' + i.toString(2)] = window['b' + i.toString(2).lpad('0', 8)] = window['b' + i.toString(2).lpad('0', 4)] = i;
curiosità: Perché è necessario letterali binari in Javascript? La natura di alto livello di Javascript significa che di solito non ha bisogno di interagire con i costrutti di basso livello che richiederebbero valori letterali binari. –
Perché in questo modo il codice sarà più leggibile. La mia implementazione è basata su alcune specifiche che utilizzano numeri binari. –
utilizzando il nodo js per la robotica è un buon esempio di dove può essere necessario il binario –