Arkadaşlar şu binary kod sistemiyle uğraşırken, dedim ki; ekrandaki gibi bir işlem yapayım, fakat sonuç beklediğimden bambaşka bir şey çıktı. Neye göre 520 sonucu yansıdı konsola? Teşekkürler şimdiden.
Yazdığın işlemde sonuçların her birisi 10 tabanındaki sonuca göre dönüyor.
584 ve 520 sonuçları 10 tabanında. Şöyle olursa çalışır. Görseldeki değerleri baz alarak verdim.
function binary_and(n1, n2) {
var _n1 = parseInt(n1.toString(8), 2);
var _n2 = parseInt(n2.toString(8), 2);
console.log(_n1 & _n2);
}
binary_and(00001110, 00001010);
string'e çevirilirken 8 tabanında parse edilirken 2 tabanında olacak şekilde yazdırdım.
parseInt metodu string vb. değerler aldığı gibi ikincil olarak kök değerini alır. toString metodu ise sadece kök değerini alır. Bir binary sayınının varsayılan değeri açıkca 2 tabanında istendiği söylenmiyor ise 10 tabanından verilir. Eğer 10 tabanındaki işlemlerle uğraşmak istemiyorsan
0b00001110 & 0b00001010
formatta kullanırsın. Bu direkt ikilik formatta olduğunu belirtir. Diğer türlü yani ilk kullanımında dönüşümün 10 -> 8 -> 2 olmalı.
@Opcode Teşekkür ederim, biraz daha aydınlatıcı ve anlaşılır olabilmesi için kısaca özetliyeyim; Şimdi ben 8 bit'lik Binary değer yazdığım için her bir bit'i 8 ile çarptmış.