Javascript "console.log(x & y);" Sonucu Neye Göre Hesaplanır?

34ferit

Hectopat
Katılım
8 Eylül 2017
Mesajlar
43
Daha fazla  
Cinsiyet
Kadın
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.


 
Son düzenleyen: Moderatör:
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ı.
 
Son düzenleme:
@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ış.

1x0 = 0, 8x1 = 8, 64x0=0, 512x1=512 + 8 = 520.
Formülü bilmeyenler için ;
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…