İçindekiler:
Video: Construct Binary Tree From PreOrder And Inorder (Explain) - C++ 2024
C ++ değişkenleri dahili olarak ikili sayı olarak adlandırılır. İkili sayı , bit olarak bilinen 1 ve 0 değerler dizisi olarak saklanır. Çoğu zaman, bit seviyesinde rakamlarla uğraşmanız gerçekten gerekmez; Ancak, bunu yaparken uygun olan durumlar vardır. C ++, bu amaç için bir dizi operatör sağlar.
Sözde bitwise mantıksal operatörler, argümanlarını bit seviyesinde çalışırlar. Nasıl çalıştığını anlamak için, bilgisayarların değişkenleri nasıl sakladığını inceleyin.
Ondalık sayı sistemi
Bilinen numaralar, sayı 10'a dayandığı için ondalık sayı olarak bilinir. Genel olarak, programcı C ++ değişkenleri ondalık sayı olarak kullanır. Bu nedenle, örneğin, var değerinin 123 olduğunu söylemek istersiniz.
123 gibi bir numara 1 * 100 + 2 * 10 + 3 * 1 anlamına gelmektedir. Bu temel sayıların her biri (100, 10 ve 1), 10'un gücüdür.
123 = 1x102
123 = 1x100 + 2x10 + 3x1 Biraz farklı fakat eşdeğer şekilde ifade edilir: 123 = 2 * 10 1 + 3 * 10 0
Sıfır gücüne herhangi bir sayı 1'dir.
Diğer sayı sistemleri
10'luk bir taban sayısı kullanılmaktadır. sayma sistemi, muhtemelen insanların orijinal sayma araçlarının 10 parmağına sahip olması gerçeğinden kaynaklanıyor. Alternatif baz 20. olurdu.
Köpekler numaralandırma şemamızı icat ettiyse, sayı 8'e dayanmış olabilir (her pençenin bir basamağı bacağın arka kısmında görülemez). Böyle bir sekizli sistemi de aynı şekilde işe yarardı:
123 10 = 1 * 8 2 + 7 * 8 1 Küçük 10 ve 8 burada ondalık (taban 10) için 8, 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. (Belki de bu yüzden bilgisayarlar o kadar aptaldır: Karşılık gelen baş parmak olmadan, hiçbir şeyi kavrayamazlar ve sonra da belki de olamazlar.) Bilgisayarlar, 2. tabanı kullanarak saymayı tercih eder. 123 10
sayısı şu şekilde ifade edilebilir::
123
10 = 0 * 128 + 1 * 64 + 1 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 01111011 < 2
Her zaman önde gelen basamaklar sıfır olsa da, ikili sayıları 4, 8, 32 veya 64 ikili basamak kullanılarak ifade etmek uygundur. Bunun nedeni, bilgisayarların dahili olarak hazırlanma biçiminden kaynaklanmaktadır. basamağı
terimi ondan daha fazla olduğu için, ikili bir basamaka bit
adı verilir. Terim, ikili (b-) rakamdan (-it) kaynaklanır.Sekiz bit bir bayt oluşturur. Bir kelime genellikle iki ya da dört bayttır.
Böyle küçük bir tabanla, sayıları ifade etmek için çok sayıda bit kullanmak gereklidir. Böyle sıradan değeri 123 10 olarak ifade etmek için 01111011 2 gibi bir ifadeyi kullanmak sakıncalıdır. Programcılar, sayıları bayt birimi veya sekiz bit ile ifade etmeyi tercih eder.
Dört bit, 0'dan 15'e kadar herhangi bir değere kadar ifade edebildiğinden, dört bitlik bir basamak esasen taban 16'dır. Taban 16, onaltılık sayma sistemi olarak bilinir. Onaltılı genellikle yalnızca onaltılık olarak taahhütlü. 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 (11) * 16 0 = 7B
16 Programcılar 4, 8'de rakamları ifade etmeyi tercih ettikleri için, 32 veya 64 bit olsa da, önde gelen basamaklar 0 olduğunda bile, 1, 2, 4 veya 8 onaltılı basamaklı olarak onaltılık sayıları ifade etmeyi tercih eder. Sonunda, 7B gibi bir onaltılık sayı belirtmek uygun değildir < 16 , bir alt simge kullanarak terminaller alt simgeleri desteklemez. Bir kelime işlemcide bile, yazı tiplerini yalnızca iki basamaklı yazmak ve alt yazı modundan değiştirmek sakıncalıdır. Bu nedenle, programcılar, onaltılık bir sayıya başlama kuralını 0x ile kullanır (böyle garip inançların nedeni, C'nin ilk günlerine geri döner). Böylece, 7B 0x7B olur. Bu antlaşmayı kullanarak, 0x7B, 123'e eşittir (0x123 291'e eşittir.) Tüm ondalık sayıların ondalık sayılara uygulanmasıyla aynı şekilde onaltılı sayılarda uygulanabilir. Başımızda 0xC * 0xE gibi çarpma yapamamamızın nedeni, okulda öğrendiğimiz çarpım tablolarıyla, sayı sistemindeki sınırlamalardan çok daha fazla.