İçindekiler:
Video: Kolay C Alıştırma - Yıldızlarla Şekil Oluşturma 2024
C ++ değişkenleri dahili olarak sözde ikili sayı olarak saklanır. İkili sayılar, bit olarak bilinen 1 ve 0 değerler dizisi olarak saklanır. Çoğu zaman, sayıları temsil etmek için hangi bitleri kullandığınızı gerçekten bilmeniz gerekmez. Bununla birlikte, bazen, bit seviyesinde sayılarla bağlantı kurmak pratik ve uygundur - bu nedenle C ++, bu amaçla bir dizi operatör sağlar.
Sözde bitwise mantıksal operatörler, argümanlarında bit seviyesinde çalışırlar. Nasıl çalıştığını anlamak için önce bilgisayarların değişkenleri nasıl sakladığını inceleyin.
Ondalık sayı sistemi
Parmaklarınız üzerinde ilk sayabildiğiniz zamandan beri tanıdığınız rakamlar, ondalık sayı olarak bilinir çünkü bunlar temel alırlar Genel olarak, programcı C ++ değişkenlerini ondalık sayı olarak ifade eder. Böylece, var değerini 123 olarak belirleyebilir, ancak sonuçlarını düşünebilirsiniz.
123 gibi bir numara, 1 * 100 + 2 * 10 + 3 * 1'i ifade eder. Bu taban sayılarının tümü - 100, 10 ve 1 - tümü 10.
123 = 1 * 10123 = 1 * 100 + 2 * 10 + 3 * 1
2 + 2 * 10 1 + 3 * 10 0
sayı sıfır gücüne 1 olduğunu unutmayın. Diğer numara sistemleri
Evet, sayma sistemimizin temelini (veya
taban ) esasen kullanmak, muhtemelen orijinal sayma araçları olan bu 10 insan parmağından kaynaklanmaktadır. Bir sayma sistemi için alternatif bir taban da kolaylıkla 20 olabilir.
sekizli sistemi de işe yarardı: 123
10 = 1 * 8 2 + 7 * 8 1 < + 3 * 8 0 = 173 8 Buradaki küçük 10 ve 8, ondalık (taban 10) için 10, sekizlik için 8 (taban 8) numaralandırma sistemine işaret etmektedir. Sayma sistemi herhangi bir pozitif tabanı kullanabilir. İkili sayı sistemi
Bilgisayarların esasen iki parmağı vardır.
123
10 = 0 * 2 7
+ 1 * 2 <123> 6 + 6 + 1 * 2 5 + 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 1 * 2 0 123 10 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 01111011 2 Bilgisayar kongresi, önde gelen basamaklar 0 olsalar bile, ikili sayıları 4, 8, 16, 32 veya 64 ikili basamak kullanılarak ifade eder.Bunun nedeni, bilgisayarların dahili olarak hazırlanma biçiminden kaynaklanmaktadır.
basamağı
terimi 10'un katını ifade ettiği için ikili basamağı a bit ( ikilik basamak kısaltması) olarak adlandırılır >). bayt , 8 bitten oluşur. (İkili basamak a bayt-it çağrılması iyi bir fikir gibi gözükmüyordu.) Bellek genellikle bayt olarak ölçülür (rulo fırıncı düzinelerce ölçülür gibi). Böyle küçük bir tabanla, sayıları ifade etmek için bir büyük bit kullanmanız gerekir. İnsanlar 011110112 gibi bir ifadeyle 123
10 gibi sıradan değerleri ifade etme güçlüğünü istemiyorlar. Programcılar, çift sayıda bit kullanarak sayıları ifade etmeyi tercih eder. 3 bitlik sekizlik sistem, C'nin ilk günlerinde varsayılan ikili sistemdi. Bugün bile bunun bir izini görüyoruz - 0 ile başlayan bir sabitin C ++'da sekizlik olduğu varsayılıyor. Böylece, satır: cout << "0173 =" << 0173 << endl; aşağıdaki çıktıyı üretir:
0173 = 123
Ancak, sekizlik neredeyse tamamen
onaltılık
sistemi ile değiştirildi, bu sistem 4-bitlik rakamlara dayanıyordu.
Onaltılık, 0'dan 9'a kadar olan rakamlar için aynı basamakları kullanır. 9 ile 16 arası basamaklar için onaltılık, alfabenin ilk altı harfini kullanır: A için 10, B için 11 ve bu gibi devam eder. Böylece, 123 10 7B
16 olur: 123 = 7 * 16 1 + B (yani 11) * 16
0 = 7B 16 Programcılar, her durumda önde gelen rakam 0 olduğunda bile, 4 onaltılı basamak katları halinde onaltılık sayıları ifade etmeyi tercih eder. Son olarak, kim 7B gibi bir onaltılık sayı belirtmek ister 16
alt indeks kullanarak? Terminaller
bile alt indekslerini desteklemezler. Bir kelime işlemcide bile, yazı tiplerini iki berbat basamak yazıp yazmak için alt yazı modundan değiştirmek için bir sürüklenme. Bu nedenle, programcılar (hiçbir aptal değil,), onaltılık bir sayının 0x ile başlayan kuralını kullanırlar. Böylece, 7B 0x7B olur. Bu sözleşmeyi kullanarak 0x7B onaltılık sayı 123 ondalık, 0x123 onaltılık 291 ondalık eşittir. Kod pasajı cout << "0x7B =" << 0x7B << endl; cout << "0x123 =" << 0x123 << endl; aşağıdaki çıktıyı üretir:
0x7B = 123 0x123 = 291
Onaltılık sayılara ondalık sayıya uygulayacağınız gibi onaltılı sayılardaki tüm matematiksel operatörleri kullanabilirsiniz.
Gerçekten istiyorsanız, ikili sayıları C ++ '14'te '0b' önekini kullanarak yazabilirsiniz. Böylece 123, 0b01111011 olur.