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.

islem.PNG

sonuc.PNG
 
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 ;
Bit İşlem formülü.PNG
 
Uyarı! Bu konu 9 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı