Programcı Hesap Makinesi & Bitsel Hesap Makinesi

0x onaltılık, 0b ikili ve 0o sekizlik değişmezleri, & | ^ ~ bitsel işleçleri, << >> >>> kaymaları, döndürmeleri ve düz aritmetiği kullanan tek bir ifade yazın — sonuç 8, 16, 32 ya da 64 bitlik bir kelime boyutunda, işaretli ya da işaretsiz olarak ondalık, onaltılı, sekizlik ve ikili olarak canlı güncellenir. Aşağıda tıklanabilir bir bit ızgarası, iki işlenenli bir bitsel panel (AND / OR / XOR / NAND / NOR / NOT / kaymalar / ROL / ROR) ve tek bit ayarla / temizle / değiştir bulunur. Bit mantığı olmayan düz taban dönüşümü için Matematik Dönüştürücü'ye; istatistik için İstatistik Hesap Makinesi'ne bakın.
Kelime boyutu   Görünüm   İşleçler: & | ^ ~ << >> >>> + - * / % ( ) — yalnızca tam sayı aritmetiği, sonuçlar kelime boyutunda sarılır.
ONDALIK
HEX
SEKİZLİK
İKİLİ
Bitler en anlamlıdan başlayarak gösterilir; soluk hücreler geçerli kelime boyutunun dışındadır.
bit indeksi (0 = en az anlamlı)
A =    B =  A ve B tam ifadeleri kabul eder (ör. 1 << 12).
Sonuç tablosu hem A hem B ayrıştırıldığında görünür. Kaymalar ve döndürmeler sayıyı B'den alır.
Bir örnek deneyin:
Kaymalar nasıl davranır: << kelime boyutuna geri maskeler (en üstten taşan bitler yok olur). >>> her zaman mantıksal (işaretsiz) bir kaymadır. >> Görünüm seçicisini izler: işaretli modda aritmetik, işaretsiz modda mantıksal. Gizlilik: tüm hesap makinesi bu sekmede çalışır — sunucu yok, depolama yok.

Programcı hesap makinesi nedir?

Bir programcı hesap makinesi, aritmetiği bilgisayarların sakladığı biçimde yapar: sabit genişlikte bit kelimeleri hâlinde. Bitmeyen bir sayı doğrusu yerine, 8 bitlik bir kelime 256 değerlik bir çemberdir, 32 bitlik bir kelime 4.294.967.296 değerlik bir çemberdir. Her sonuç o çembere geri sarılır ve aynı bitler işaretsiz bir sayı (0 … 255) ya da işaretli bir iki tümleyen değeri (-128 … 127) olarak okunabilir. Yukarıdaki dört taban satırı aynı bitlerin dört biçimde gösterilmesidir — birini düzenleyin, diğer üçü izler.

Programcılar neden onaltılıkla yaşar

Bir onaltılık basamak tam olarak dört bittir, bu yüzden bir bayt her zaman iki onaltılık basamaktır, 32 bitlik bir kelime her zaman sekiz. Onaltılık, sıfırların insan gözü için yeniden gruplandırılmış ikilidir:

İkiliHexOndalık
1111 11110xFF255
0001 01100x1622
1000 00000x80128 (ya da işaretli -128)

Bir paragrafta iki tümleyen

Bir kelimeyi işaretli okumak için en üst bite bakın. 0 ise değer yalnızca işaretsiz sayıdır. 1 ise daire boyutunu çıkarın: 8 bitlik 0xFF 255 − 256 = −1'dir. Bütün numara budur — -x ve 0 - x aynı bitleri üretir, bu yüzden aynı toplayıcı donanımı ikisi için de çalışır. İşaret değiştirme "her biti çevir, 1 ekle"dir: NOT(0x01) = 0xFE, +1 = 0xFF = −1.

Kaydırma işleçlerine bakış

İşleçAd8 bitlik örnek (a = 0xF0)
a << 1sola kaydırma0xE0 — en üst bit düşer, alta sıfır girer
a >> 1 (işaretsiz)mantıksal sağa kaydırma0x78 — üstten sıfırlar girer
a >> 1 (işaretli, a = −16)aritmetik sağa kaydırma0xF8 = −8 — işaret biti kopyalanır
a >>> 1her zaman mantıksalGörünüm seçicisinden bağımsız olarak 0x78
rol(a, 1)sola döndür0xE1 — düşen en üst bit alta geri girer

Bu sayfanın yaygın hatalardan kaçınmanıza yardımcı olduğu durumlar

Aritmetik kaydırma ile mantıksal kaydırma: işaret bitini kopyalamak (aritmetik) ve sıfırlarla doldurmak (mantıksal), en üst bit ayarlı olduğunda farklıdır — Görünüm seçicisini değiştirin ve 0xF0 >> 1'in 0x78 ile 0xF8 arasında değişimini izleyin.
53 bitlik sürpriz: JavaScript'in olağan Sayı türü, yalnızca 53 güvenli tam sayı biti olan 64 bitlik bir kayan noktadır, bu yüzden 0xFFFFFFFFFFFFFFFF tam olarak temsil edilemez — bu sayfa dahili olarak tam 64 bitlik tam sayı aritmetiği kullanır, bu yüzden gördüğünüz her onaltılık basamak güvenilirdir.
Kayan nokta tuzakları: 0.1 + 0.2 kayan noktada ünlü olarak 0.30000000000000004 verir; bu hesap makinesi tasarım gereği yalnızca tam sayılıdır — bölme sıfıra doğru kırpılır, tıpkı C'nin tam sayılarda / işleci gibi.
Baştaki sıfırlar: eski C'de 052 gibi bir değişmez sekizlik anlamına gelirdi. Burada ondalık düz basamaklardır ve sekizlik 0o önekine ihtiyaç duyar, bu yüzden hiçbir şey belirsiz değildir.

SSS

En büyük sayı nedir? — 64 bit işaretsiz: 18.446.744.073.709.551.615 (0xFFFFFFFFFFFFFFFF); işaretli: ±9.223.372.036.854.775.808.
1 << 8 neden 0 oldu? — kelime boyutu 8 bittir; bit 8 yoktur ve maske onu düşürür. Tutmak için 16/32/64 bite geçin.
~ ne yapar? — bitsel NOT: geçerli kelime boyutu içinde her bit çevrilir, bu yüzden ~0 tümü birler (255 / 65535 / −1 …) olur.
Kayan nokta var mı? — hayır, yalnızca tam sayı; kayan nokta, trigonometri ve fonksiyonlar için Bilimsel Hesap Makinesi'ni kullanın.
Makinemden bir şey çıkıyor mu? — hayır: sunucu yok, depolama yok, analitik yok; sekmeyi kapatın ve her şey yok olur.