Bölüm 3: Mikroişlemcide İkili Sayı İşlemleri

Bolum 3 Mikroislemcide Ikili Sayi Islemleri



Bölüm 3: Mikroişlemcide İkili Sayı İşlemleri

3.1 Giriş

Bilgisayarda aritmetik işlemler 8 bit, 16 bit, 32 bit veya 64 bit olarak yapılır. İkili sistemde 3 gibi bir sayı 11'dir. İşlem 8 bit olarak yapılacaksa bu 00000011 olarak kabul edilir; önünde 0 sıfır bulunur.







10000101 gibi bir ikili sayı için en anlamlı bit, en soldaki bittir. Bu durumda 1'dir. En az anlamlı bit, sayı için hala 1 olan sağdaki uç bittir. En önemli bit MSB olarak kısaltılır. En az anlamlı bit LSB olarak kısaltılır.



BInary digiT, BIT olarak kısaltılır ve basitçe bit olarak yazılır. 10010011 sayısında her bir veya sıfır bir bittir. Dört bitlik bir gruba yarım bayt denir. Sekiz bitlik bir gruba bayt denir. Bir bayt iki yarım parçadan oluşur. Düşük yarım bayt, LSB için yarım bayttır ve yüksek yarım bayt, MSB için yarım bayttır.



8 bit, 16 bit, 32 bit veya 64 bitlik bir gruba, bu grup yalnızca bir sayı belirtmenin ötesinde bilgi ilettiği sürece kelime adı verilir. Grup, örneğin bilgisayarda düşük seviyeli bir talimat ise, kelime olarak adlandırılır. Ayrıca 24 bitlik bir kelime de vardır, ancak bu günümüzde yaygın olarak kullanılmamaktadır.





Endianness, baytların bir kelimeyi oluşturduğu sırayı ifade eder. 24 bitlik kelimeyi düşünün – 100100001111010100100010. Bu kelime üç bayttan oluşur:

10010000 11110101 00100010



En anlamlı bayt en soldaki bayttır. En soldaki bayt en anlamlı bayt ve en sağdaki bayt en az anlamlı bayt olduğunda buna kelimenin Big Endian temsili denir. Little Endian gösterimi ise tam tersidir.

Bilgisayar belleği bir dizi hücreden oluşur ve her hücre bir bayt tutar. Bilgisayarın belleğindeki ilk hücre bayt 0 içindir, ikincisi bayt 1 içindir, üçüncüsü bayt 2 içindir vb. Büyük endianness ile ve önceki kelime için, en anlamlı bayt, bayt 0 hücresinde, ortadaki bayt, bayt 1 hücresinde ve en az anlamlı bayt, bayt 2 hücresinde saklanır. Bu, alt bellek hücresinde daha önemli baytların olduğu anlamına gelir.

Önceki 24 bitlik kelime, baytların ters sırasına göre aşağıdaki gibi yazılabilir:

00100010 11110101 10010000

Şimdi, en az anlamlı bayt en solda, en önemli bayt ise en sağdadır. En soldaki bayt en az anlamlı bayt ve en sağdaki bayt en anlamlı bayt olduğunda, bu kelimenin Little Endian temsilidir. Küçük endianness ile ve önceki kelime için, en az anlamlı bayt, bayt 0 hücresinde, ortadaki bayt, bayt 1 hücresinde ve en anlamlı bayt, bayt 2 hücresinde depolanır. Bu, alt bellek hücresinde daha az önemli bayt olduğu anlamına gelir.

Endianness bir bayttaki bitler için kullanılmaz. Ayrıca bir bayttaki yarım baytlar için de kullanılmaz. Yalnızca bayt sırası için kullanılır.

Sayı Doğrusu
İşareti olmayan bir sayı pozitif bir sayıdır. Pozitif sayılar sıfırdan yukarı doğru giden sayılardır. Negatif sayılar da mevcuttur. Pozitif ve negatif sayılar sayı doğrusunda gösterilebilir. Aşağıdaki sayı doğrusu sıfıra yakın pozitif ve negatif tam sayıları (tamsayıları) göstermektedir:

Negatif sayılar sıfırdan aşağıya doğru (sola doğru) azalır. Çoğu durumda sıfır pozitif olarak kabul edilir. Ancak bazı durumlarda olumsuz olarak kabul edilir. Bu nedenle diyagramda alt numaralandırmada sıfırın önünde artı ve eksi işareti bulunmaktadır. Bir sayı pozitif olduğunda işareti atlanabilir; diyagramdaki üst numaralandırma için durum budur. Negatif bir sayının önündeki eksi işareti hiçbir zaman atlanmaz.

3.2 İkili Sayıların Toplanması

Ayrıca:

A + B = S

A'ya eklenen, B'ye toplanan ve S'ye toplam denir.

İki tabanındaki iki pozitif sayının aşağıdaki toplamını düşünün:

İki tabanında mümkün olan tek rakam 0 ve 1'dir. 2 tabanındaki toplama, on tabanındaki toplamaya benzer, ancak iki tabanındaki iki bir-sıfırdır (10). Bir sütundaki iki bitin toplamı 10 olduğunda 0 yazılır ve 1 hemen soldaki sütuna taşınır; oradaki iki bitin toplamına eklenecek. Toplam toplam üç olduğunda, iki tabanında 11 demektir. 11'de sağdaki 1 yazılır ve soldaki 1, hemen soldaki sütun bitlerinin toplamına eklenmek üzere taşınır. Her iki durumda da sola doğru taşınan 1'e taşıma denir.

Önceki toplama tablosunu sağdan okursak ikinci sütunda (sağdan) 1+1 = 10 sonucunu veren bir elde etme vardır. Üçüncü sütunda ise 1+1+ elde etme sonucunu veren bir elde etme vardır. 1 = 11. Dördüncü sütunda 0+1+ elde edilen 1 = 10 sonucu elde edilen bir elde vardır. Beşinci sütunda elde edilen sonuç 0+0+ elde edilen 1 = 1 olduğu için elde edilen bir sonuç yoktur. sütunların geri kalanı hiçbir taşıma gerektirmez.

Sütun sayımı sağ uçtan başlar. 16 bitlik ekleme ile sekizinci sütundan dokuzuncu sütuna (sola doğru hareket ederek) bir taşıma yapılabilir. Aşağıdaki tablo bunu göstermektedir:

Aritmetik ve mantık işlemleri bilgisayarın ana kartındaki mikroişlemcide gerçekleşir.

8 bitlik bir kelime bilgisayarında taşıma, donanım tarafından otomatik olarak sekizinci bitten dokuzuncu bit'e geçemez. Dolayısıyla, böyle bir bilgisayara iki adet 16 bitlik grup eklemek için, ekleme işleminin sekiz-sekiz bitlik çiftler halinde iki kez yapılması gerekir. Taşıma yazılım (programlama) tarafından taşınır ve gerçekleştirilir.

İki sayıyı toplamak için sayılar, eklemeden önce ilk olarak ikinin tümleyen formuna (aşağıya bakın) dönüştürülebilir.

3.3 İkinin Tümleri ve İkili Sayılardan Çıkarılması

Bilgisayarın anakartında hafıza, mikroişlemci ve diğer devreler bulunmaktadır. Bellek bir dizi sekiz bitlik hücreden oluşur. Bir bayt için her bit bir hücreye gider. Mikroişlemcinin birkaç bellek tipi konumu vardır. Bu bellek tipi konumlara kayıtlar denir. Böylece bilgisayarda bayt grupları geçici olarak hafızada veya mikroişlemcinin kayıtlarında saklanabilir.

Bu depoların herhangi birinde, her hücre ya 1'i ya da 0'ı alabilir, başka hiçbir şeyi alamaz. Hayatta pozitif ve negatif sayılar vardır. Pozitif bir sayı artı işaretiyle (+), negatif bir sayı ise negatif işaretiyle (-) başlar. İşaret atlandığında sayı pozitif bir sayı olarak kabul edilir.

Bilgisayarda bir sayının işaretini gösterme sorununu çözmek için tam sayılar aralıklarda saklanır. Tam sayılar tam sayılardır. Olası sayıların aralığını depolamak için sekiz bit kullanılıyorsa, en soldaki bit işaret biti olarak kullanılır. Sayı 0 ile başlıyorsa sayı pozitif bir sayıdır. 1 ile başlıyorsa sayı negatif bir sayıdır. Olası sayıların aralığını depolamak için on altı bit kullanılıyorsa, en soldaki bit işaret biti olarak kullanılır. Sayı 0 ile başlıyorsa sayı pozitif bir sayıdır. 1 ile başlıyorsa sayı negatif bir sayıdır. Bu formdaki sayılara işaretli sayılar denir.

Pratikte 8 bit, 16 bit, 32 bit ve 64 bitlik işaretli sayılar bulunabilir. Bit sayısı ne kadar geniş olursa, saklanabilecek olası sayıların aralığı da o kadar büyük olur.

İkinin Tümleyen Tam Sayıları
İkinin tamamlayıcısı ile pozitif sayılar, en soldaki rakamın 0 olması dışında normal sayma sayılarıdır. Verilen herhangi bir pozitif sayıya karşılık gelen negatif sayıyı elde etmek için sayıdaki her biti ters çevirin ve sonuca 1 ekleyin. 0'ın tersi veya tümleyeni 1'dir. 1'in tersi veya tümleyeni 0'dır. Aşağıdaki tablolarda bazı ikinin kendi aralıklarındaki tümleyen sayıları gösterilmektedir:

Tablo 3.31
İkinin İki Bitteki Tümleyen Tam Sayıları
İkili Ondalık
01 +1
00 +0
on bir -1
10 -2

Pozitif ikili sayılar 00 ve 01'dir (yani sıfır ve bir). En soldaki bitte sıfır, bunların pozitif sayılar olduğunu gösterir. 00 aralığın biraz ortasında. -1 elde etmek için 01 sayısının tersi 10 olarak bulunur. Buna (en sağda) 1 eklenmesi 11 sonucunu verir.

İki bit kullanıldığından 01, 00 ve 11'e karşılık gelen +1, +0 ve -1 sayılarından oluşan aralıktaki sayıları temsil edecek yalnızca bir bit kalır. İlk bit işareti belirtir. +2 için 10'un bu üç ikili sayı arasında olmadığı görülür. 10, 1 ile başlar; bu, ikinin tümleyeninde negatif bir sayı olması gerektiği anlamına gelir. Yani aralığa 10 dahil edilir, yani -2 anlamına gelir.

İkinin tamamlayıcısındaki iki bit ile temsil edilebilecek tüm tam sayıların (pozitif ve negatif) sayısı 2'dir. 2 = 4 ve 2 değil 2 -1 = 3. Nüans, 2'nin negatifi olan son negatif sayının dahil edilmesinden kaynaklanır. sayı ile – 1. Bu durumda -2 2-1 = -2 1 = -2. 2 bitte ikinin tamamlayıcı sayıları aralığında +2 yoktur.

Tablo 3.32
İkinin Dört Bitteki Tümleyen Tam Sayıları
İkili Ondalık
0111 +7
0110 +6
0101 +5
0100 +4
0011 +3
0010 +2
0001 +1
0000 +0
1111 -1
1110 1110
1101 -3
1101 -3
1100 -4
1011 -5
1010 -6
1001 1001
1000 -8

Pozitif ikili sayılar 0000 ile 0111 arasındadır (yani sıfırdan yediye). En soldaki bitte sıfır, bunların pozitif sayılar olduğunu gösterir. 0000 aralığın biraz ortasındadır. -1 elde etmek için 0001 sayısının tersi 1110 bulunur. Buna (en sağda) 1 eklenirse 1111 elde edilir. -2 elde etmek için 0010 sayısının tersi 1101 bulunur. Buna 1 eklenirse ( en sağdan itibaren) 1110'u verir. -3'ten -7'ye kadar diğer negatif ikili sayılar da benzer şekilde belirlenir.

Dört bit kullanıldığı için aralıktaki sayıları temsil edecek üç bit kalıyor: +7, +6, +5, +4, +3, +2, +1, +0, -1, -2, - 3, -4, -5, -6 ve -7, 0111, 0110, 0101, 0100, 0011, 0010, 0001, 0000, 1111, 1110, 1101, 1100, 1011, 1010 ve 1001'e karşılık gelir.

1000'e karşılık gelen -8'in ayrıca ele alınması gerekir. Tüm bu sayıların ilk biti, pozitif sayılar için 0'ın, negatif sayılar için 1'in işaretini gösterir. Bu on dört ikili sayının arasında 1000 yoktur. 1000 1 ile başlar, bu da ikinin tümleyeni söz konusu olduğunda negatif bir sayı olması gerektiği anlamına gelir. Yani 1000 aralığına dahildir, yani -8 anlamına gelir.

İkinin tamamlayıcısındaki dört bit ile temsil edilebilecek tüm tam sayıların (pozitif ve negatif) sayısı 2'dir. 4 = 16 ve 2 değil 4 – 1 = 15. Nüans, 2'nin negatifi olan son negatif sayının dahil edilmesinden kaynaklanır. sayı Genişlik – 1. Bu durumda -2 4 -1 = -2 3 = -8. Sayı aralığında +8 yoktur.

İkinin tamamlayıcısındaki iki, dört ve daha geniş bitler için yapılan önceki analiz, 8 bit, 16 bit, 32 bit ve 64 bit genişliğindeki ikili sayılara uygulanabilir.

İkinin tamamlayıcısı, pozitif sayı için 0 ve negatif sayı için 1 işareti için ilk (en soldaki) biti feda eder. “n” bit genişliğindeki bit grubu için 2 tane vardır N toplam pozitif artı negatif sayılar. 2 olurdu N -1, dahil edilen şanslı son (en küçük) negatif sayı olmasaydı. En yüksek pozitif sayı +2'dir n-1 -1 ve en küçük negatif sayı -2'dir n-1 -1. -2 olurdu n-1 -1, şanslı olmasaydı -2 n-1 dahil.

İkinin Tümleyenindeki Sayıları Çıkarma
Çıkarma işleminde:

A – B = D

A'ya eksi, B'ye çıkan ve D'ye fark denir.

Bir pozitif ikili sayıdan başka bir pozitif ikili sayıdan çıkarmak için eksi ikinin tümleyeni şeklinde yazılır ve çıkan, negatif ikinin tümleyeni değerine dönüştürülür. Böylece matematiksel ifade şu hale gelir:

A+ – B = D

Yani ikinin tümleyen çıkarma işleminde çıkan, negatif sayıya dönüştürülür ve eksile eklenir.

Örnek 3.31:
Aşağıdaki ondalık ifadeyi ikinin tamamlayıcısında dört bit kullanarak değerlendirin:

6 – 4

Çözüm:
6'nın ikili sayısı 110'dur. 4 bitlik ikinin tümleyeninde 0110'dur. +4'ün ikili sayısı 100'dür. 4 bitlik ikinin tümleyeninde ise 0100'dür. 0100'ün ikide negatif 4'e dönüştürülmesi gerekir. tümleyeni şu şekilde: 0100'ün tümleyeni veya tersi 1011'dir. Buna ekleme yaptığımız gibi sağ uçtan 1 eklersek 1100 verir. Yani ondalık ifadesi şöyle olur:

6 – 4 şuna dönüşür:

0110 – 0100

0110 +(– 0100) = 0110 + 1100 önceki toplama bölümündeki gibi yapılır:

Not: 0110 +(– 0100), 6 + – 4 ​​ile aynıdır

İkinin tümleyeninin çıkarılmasıyla, sol taraftaki son sütundan sonraki tüm taşımalar atılır. Ondalık sayılarda çıkarma işlemi yapılırken matematiksel ifade şu şekildedir:

6 – 4 = 2

Aynı şeyi ikinin tümleyeninde de yaparsak cevap 0010 olur; bu ikinin tümleyeni ikili sayımında +2'dir. Önceki çıkarma işlemi, daha büyük bir sayıdan daha küçük bir sayıyı çıkarır. Aşağıdaki örnekte, daha küçük bir sayıdan daha büyük bir sayı çıkarılmaktadır. 0010'un gerçekten +2'ye eşdeğer olan ikinin tümleyeni olup olmadığını görmek için Tablo 3.32'ye başvurulabilir.

Örnek 3.32:
Aşağıdaki ondalık ifadeyi ikinin tamamlayıcısında dört bitle değerlendirin:

4 – 6

Çözüm:
4'ün ikili sayısı 100'dür. 4 bitlik ikinin tümleyeninde 0100'dür. +6'nın ikili sayısı 110'dur. 4 bitlik ikinin tümleyeninde 0110'dur. İkinin tümleyeninde 0110'un negatif 6'ya dönüştürülmesi gerekir şöyle: 0110'un tümleyeni veya tersi 1001'dir. Buna bir önceki toplamada yaptığımız gibi sağdan 1 eklersek 1010 verir. Yani ondalık ifadesi şöyle olur:

4 – 6 şu şekilde olur:

0100 – 0110

0100 +(– 0110) = 0100 + 1010 önceki toplama bölümündeki gibi yapılır:

Not: 4+ – 6, 0100 +(– 0110) ile aynıdır.

İkinin tümleyeninin çıkarılmasıyla, sol taraftaki son sütundan sonraki tüm taşımalar atılır. Ondalık sayılarda çıkarma işlemi yapılırken matematiksel ifade şu şekildedir:

4 – 6 = -2

İkinin tümleyeninde de aynı şeyi yaparsak cevap 1110 olur, bu da ikinin tümleyeni ikili sayımında -2'dir. 1110'un gerçekten ikinin tümleyeni olup olmadığını (-2'ye eşdeğer) görmek için Tablo 3.32'ye bakılabilir.

3.4 İkili Sayıların Çarpımı

Açıklamada:

A x B = P

A'ya çarpan, B'ye çarpan ve P'ye çarpım denir. A x B ifadesi, A ve B tam sayılar (tam sayılar) olduğunda A, B'yi kaç kez toplamak anlamına gelir.

İkili sayılarda çarpma, ondalık sayılarda çarpma ile aynıdır. Ancak ondalık sayı yerine ikili sayı şeklinde yapılır. 42 x 10'un ondalık ifadesinin çarpımı ikili sistemde aşağıdaki şekilde yapılır; burada 42 10 = 101010 2 ve 10 10 = 1010 2 :

Toplanan 4 sayıya kısmi çarpımlar denir. Cevap üründür. Kısmi ürünlerin eklenmesi daha önce açıklandığı gibi yapılır.

Çarpma işlemi şu şekilde de görülebilir: Bu iki tabanlı çarpmada, çarpandaki bit (rakam) 1 ise, kısmi çarpımının en az anlamlı biti, doğrudan altına yeniden yazılan çarpanın en az anlamlı bitidir; ve çarpanın geri kalan bitleri sola doğru tekrarlanır. Bu iki tabanlı çarpmada, çarpandaki bit (rakam) 0 ise kısmi çarpımı 0'lardan oluşur ve en az anlamlı biti 0'dır. Tüm sıfırların sayısı, çarpandaki bitlerin sayısıdır.

3.5 İkili Sayıların Bölünmesi

Açıklamada:

A ÷ B = Q

A'ya Temettü, B'ye Bölen ve P'ye Bölüm denir. Bölüme bir kalan da eşlik edebilir. A ÷ B ifadesi, A'yı vermek veya kalanın 0 veya B'den küçük olması için ona yakın olmak için B'nin kaç kez eklenebileceği anlamına gelir.

Bölme işlemi birçok şekilde yapılabilir. Burada gösterilen bölüm restorasyon bölümüdür.

Bölüm Geri Yükleniyor
Bu okullarda öğrenilen uzun bölme yöntemidir. 237 sayısı 6'ya bölünürse cevap 39 kalan 3 olur. 237 10 2. tabanda 11101101 2 ve 6 10 2. tabanda 110 2 . 39 10 2. tabanda 100111 2 ve 3 10 2 tabanında 11 var 2 .

Yani, 11101101 2 110'a bölünür 2 100111 verir 2 kalan 11 2 ikinci tabanda. Restorasyon yönteminde ikili sayılar sıradan sayılardır ve mutlaka ikinin tümleyeni olması gerekmez. Aşağıdaki yapı 11101101'i böler 2 110'a kadar 2 100111 vermek 2 kalan 11 2 :

Çıkarma işlemi ikinin tümleyeni kullanılarak değil normal bir şekilde yapılır. Bu taban iki olduğundan, borç on değil ikidir. Kısmi temettüler 10, 101, 1011, 1010 ve 1001'dir. Geri kalan 11'dir. Bölen üç basamaklı olduğundan, bölme temel olarak verilen bölenden üç basamaklı gruplar halinde yapılır. Bölüm tam sayıdır (tamsayı) ve bu problem için 100111'dir. Bölüm ve kalan sonucu beklendiği gibidir.

3.6 Yazılım ve Donanımla Aritmetik İşlemler

Bilgisayar anakartının bir saati vardır. Saatin tik taklarına darbe denir. Her saat darbesinde anakartın farklı yerlerinde bir veya daha fazla karar alınır; ve bu programlama (yazılım) ile ilgilidir.

Mikroişlemcinin içinde Bileşimsel Mantık Devreleri ve Sıralı Mantık Devreleri adı verilen iki tür devre vardır. Çoklayıcı adı verilen başka bir devre türü daha vardır. Toplama, çarpma ve bölme, birleşimsel mantık (devre) kullanılarak bir saat aralığında gerçekleşebilir. Programlama (yazılım) sıralı mantık devrelerini ve çoklayıcıları kullanarak her saat darbesinde karar verir.

Çıkarma işlemi ikinin tümleyeni kullanılarak yapıldığında en az iki saat darbesi gereklidir. İlk saat darbesinde, bir çoklayıcı, çıkan ucu bir dizi NOT kapısına (rakam başına bir NOT kapısı) kanalize eder. İkinci saat darbesinde, birleşimsel mantık NOT geçitlerinin çıkışına 1 ekler ve elde edilen çıkarma ve eksileri eklemeye devam eder. Bütün bu eklemeler bir saat aralığı içinde gerçekleşebilir.

Toplama, çarpma ve bölme, doğruluk tablolarını kullanan programlamayla hala başarısız olabilir. Ancak bu çevrimiçi kariyer kursunda ele alınmamaktadır.

3.7 Mikroişlemcideki Mantık İşlemleri

VE, VEYA, XOR ve Ters Çevirme

VE
Aşağıdaki tabloda Bitsel VE gösterilmektedir. Bu, iki farklı ikili sayı için karşılık gelen bitlerin AND Doğruluk tablosuna göre AND'lendiği anlamına gelir:

Soldan sağa doğru hareket edersek 1 VE 1 = 1; 0 VE 1 = 0; 0 VE 0 = 0; 1 VE 0 = 0; vb. AND Doğruluk Tablosuna uygun olarak.

VEYA
Aşağıdaki tabloda Bitsel VEYA gösterilmektedir. Bu, iki farklı ikili sayı için karşılık gelen bitlerin OR Doğruluk tablosuna göre OR'lendiği anlamına gelir:

Soldan sağa doğru hareket edersek 1 VEYA 1 = 1; 0 VEYA 1 = 1; 0 VEYA 0 = 0; 1 VEYA 0 = 1; vb. OR Doğruluk Tablosuna uygun olarak devam eder.

ÖZGÜR
Aşağıdaki tablo Bitwise özel VEYA'yı göstermektedir. Bu, iki farklı ikili sayı için karşılık gelen bitlerin XOR Doğruluk tablosuna göre XORlandığı anlamına gelir:

Soldan sağa hareket edersek 1 XOR 1 = 0; 0 XOR 1 = 1; 0 XOR 0 = 0; 1 XOR 0 = 1; vb. XOR Doğruluk Tablosuna uygun olarak devam eder.

Tersine Çevir (DEĞİL)
Aşağıdaki tabloda Bitsel NOT (ters çevirme) gösterilmektedir. Bu, bir ikili sayı için bu kez her bitin DEĞİL Doğruluk Tablosuna göre ters çevrildiği anlamına gelir:

Soldan sağa hareket edersek 1 = 0 DEĞİL; DEĞİL 0 = 1; DEĞİL 0 = 1; DEĞİL 1 = 0; vb. DEĞİL Doğruluk Tablosuna göre devam eder.

Sağa veya Sola Geçiş

Sağa Kaydır
Aşağıdaki ikili sayı, soldaki boş bit konumlarına sıfırlar eklenerek 3 bit konumu sağa kaydırılır:

Kaydırma bir, iki, üç, dört vb. yerler için yapılabilir.

Sola kay
Aşağıdaki ikili sayı, sağdaki boş bit konumlarına sıfırlar eklenerek 3 bit konumu sola kaydırılır:

Kaydırma bir, iki, üç, dört vb. yerler için yapılabilir.

Sağa veya Sola Döndürme

Döndürme, kaydırmaya benzer. Her seferinde bir parça yapılır. Sağa dönerken sağ uçtan çıkan parçalar kaydırmada olduğu gibi düşmez; soldaki boşalan yerleri birer birer değiştirirler. Sola dönerken sol uçtan çıkan bitler kaydırmada olduğu gibi düşmüyor; sağdaki boşalan yerleri birer birer değiştirirler.

Sağa Döndür
Aşağıdaki ikili sayı 3 bitlik sağa döndürülür:

Döndürme işlemi bir, iki, üç, dört vb. yerler için yapılabilir.

Sola Döndür
Aşağıdaki ikili sayı 3 bitlik konum sola döndürülür:

Döndürme işlemi bir, iki, üç, dört vb. yerler için yapılabilir.

3.8 ASCII Karakter Seti ve Kod Değerleri

ASCII, “Bilgi Değişimi için Amerikan (ABD) Standart Kodu” anlamına gelir. 96 tuşlu bir klavye düşünün. Bu, büyük harf tuşlarının küçük harf tuşlarından farklı olduğu ideal bir klavyedir. Diğer her tuş, İngilizce (ABD) klavyede bulunan bir karakteri temsil eder. Karakterler ve kodlar (karakterlere karşılık gelen sayılar) aşağıda listelenmiştir:

Bu tabloda ilk 32 karakter (00 karakteri dahil) 16 = 0 10 kodu) yazdırılmayan karakterlerdir. Kontrol karakterleridir. Her şeyin eşit olduğu ekranda (monitörde) görülmezler. Sadece etkileri var. Bu konuyu daha sonra tartışalım.

Karakterlerin geri kalanı yazdırılan karakterlerdir; ekranda görülüyorlar. 128 ASCII karakteri vardır. 2 7 = 128. 1,111,111 2 = 127 10 . 2'de 7 7 7 bit anlamına gelir.

Şimdi, 1111111 2 + 1 2 aynıdır:

Burada, 10.000.000 2 = 128 10 . 128 tane var 10 ASCII karakterlerinin önceki listesindeki (tablo) karakterler. Bu, on altı tabanındaki (onaltılık) kodu 00 olan ve on tabanındaki 0'a eşdeğer olan boş karakteri içerir.

Toplamda 128 karakter olduğundan, 128'den 32 yazdırılmayan karakter çıkarıldığında 96 yazdırılan karakter elde edilir. Bu bölümde yazdırılabilir karakter olan 96 karakterden oluşan ideal bir klavyenin olduğu varsayılmaktadır. Bu ideal klavyede büyük İngilizce karakterlerin tuşları, küçük İngilizce karakterlerin tuşları farklıdır.

Klavyedeki her karakter, listede gösterilmeyen 7 bitlik iki temel sayı ile temsil edilir. Örneğin “N”nin büyük harfi, taban 2'deki yedi bit 1001110 ile temsil edilir. 1001110'u dönüştürmek için 2 16 tabanına, önüne 0 koyun ve sonucu aşağıdaki gibi dört bitlik alt gruplar halinde gruplayın:

| 0100 | 1110 | 2 = | 4 | E | 16

Bu 01001110 2 = 4E 16 . 4E'yi dönüştürmek için 16 on tabanına ulaşmak için aşağıdakileri yapın:

4x(16) 1 + E x (16) 0 = 4 x 16 + E x 1 = 4 x 16 + 14 x 1 = 64 + 14 = 78 10

Listedeki (tablo) “N”nin sağında onaltılı sayı olan 4E ve ondalık sayı olan 78 bulunmaktadır.

Başka bir örnek olarak, “[“ karakteri taban 2'deki yedi bit 1011011 ile temsil edilir. 1011011'i dönüştürmek için 2 16 tabanına, önüne 0 koyun ve sonucu aşağıdaki gibi dört bitlik alt gruplar halinde gruplayın:

| 0101 | 1011 | 2 = | 5 | B | 16

Bu 01011011 2 = 5B 16 . 5B16'yı on tabanına dönüştürmek için aşağıdakileri yapın:

5x(16) 1 + Bx (16) 0 = 5 x 16 + B x 1 = 5 x 16 + 11 x 1 = 80 + 11 = 91 10

Listedeki (tablo) “[“nin sağında onaltılı sayı 5B ve ondalık sayı 91 bulunur.

Başka bir örnek olarak, '5' ondalık sayısının karakteri, 2 tabanındaki yedi bit 0110101 ile temsil edilir ve Olumsuz 2 tabanında 0000101. 0110101'i dönüştürmek için 2 16 tabanına, önüne 0 koyun ve sonucu aşağıdaki gibi dört bitlik alt gruplar halinde gruplayın:

| 0011 | 0101 | 2 = | 5 | B | 16

Bu 00110101 2 = 35 16 . 3516'yı on tabanına dönüştürmek için aşağıdakileri yapın:

3x(16) 1 + 5x(16) 0 = 3 x 16 + 5 x 1 = 3 x 16 + 5 x 1 = 48 + 5 = 53 10

Listedeki (tablo) “5”in sağında onaltılı sayı olan 35 ve ondalık sayı olan 53 bulunmaktadır.

Bilgisayar byte cinsinden çalıştığı için ideal klavyede bir tuşa basıldığında mikroişlemciye (anakarta) sekiz bit gönderilir. İdeal klavye, bilgisayarın sistem (temel) biriminden ayrılmış bir çevre birimidir. Yedi biti oluşturan ve onu kablosuyla sistem biriminin ana kartına göndermeden önce başına sıfır getiren bir elektronik devreye (IC) sahiptir. Anakartın giriş portundan (giriş devresi) yine anakart üzerinde bulunan mikroişlemciye gider. Mikroişlemciden anakart üzerinde bulunan belleğe gider.

Yani ideal klavyede “N” tuşuna basıldığında 01001110 numaralı sekiz bit mikroişlemciye alınır. Mikroişlemciden belleğe alınır ve burada bayt olarak bir bellek konumunda kalırlar. Bilgisayar programcısı 01001110'un sekiz bitinin 2 4E ile aynıdır 16 bu 78 ile aynı 10 .

İdeal klavyede “[“ tuşuna basıldığında 01011011 numaralı sekiz bit mikroişlemciye alınır. Mikroişlemciden belleğe alınır ve burada bayt olarak bir bellek konumunda kalırlar. Bilgisayar programcısı 01011011'in sekiz bitinin 2 5B ile aynıdır 16 bu 91 ile aynı 10 .

İdeal klavyede “5” tuşuna basıldığında ondalık sayı olarak değil karakter olarak mikroişlemciye 8 bit 00110101 alınır. Mikroişlemciden belleğe alınır ve burada bayt olarak bir bellek konumunda kalırlar. Bilgisayar programcısı 00110101'in sekiz bitinin 2 35 ile aynı 16 5310 ile aynı 10 .

Bir programın çalıştığı ve 5'in ondalık sayısının bilgisayara girilmesini beklediği zamanlar vardır. Bu durumda ideal klavyede “5” tuşuna basıldığında yine 00110101'in sekiz bitlik kodu mikroişlemciye alınır. İhtiyaç duyulan şey “5” karakteri değil de ondalık sayı olan 5 olduğundan, bellekteki bir kod parçası (kısa program) mikroişlemciyi kullanarak ikinci tabandaki 00110101 karakter kodunu ikinin tümleyen numarası olan 00000101'e dönüştürür. 2 onu ikinin tamamlayıcı baytı olarak bir bellek konumuna göndermeden önce. Bilgisayar programcısı 00000101'in 5 anlamına geldiğini aklında tutmalıdır. 10 2 tabanında olup 00110101 kod numaralarından farklıdır. 2 , 35 16 ve 53 10 yani “5” karakteri anlamına gelir. İkinin tamamlayıcısı olan 00000101 sayısını hafızada görüntülemek için başka bir kısa programın 00000101 numarasını hafızadan 00110101'e çevirmesi gerekir. 00110101 sayısı 35 ile aynıdır. 16 bu 53 ile aynı 10 monitörde görüntülenen (veya yazıcı tarafından bir kağıda yazdırılan).

3.9 Kayan Noktalı Sayı Formatı

Ondalık kısmı olmayan bir sayı bir tam sayıdır. 36 sayısı bir tam sayıdır. 36.375 bir tam sayı değildir. Ondalık kısmı olan bir ondalık sayıdır. 0,375'in ondalık kısmı 1'den küçük bir kesirdir.

36.375 ondalık biçimde şu şekilde yorumlanır:

Şimdi:

Yani 100100 2 = 3610 36,375'in tam sayı kısmıdır 10 .

Şimdi:

Yani 0,011 2 = 0,375 10 36.375'in ondalık sayı kısmı olan 10 .

∴ 36,375 10 = 100100.011 2

Başka bir deyişle:

100100.011 2 = 36.375 10

Sayılar bilgisayarda her şey eşit olmak üzere 10 tabanında değil 2 tabanında temsil edilir. Mikroişlemcideki bir kayıttaki bir hücre veya hafızadaki bir hücre yalnızca 1 veya 0 alabileceğinden, ondalık noktayı saklayacak yer yoktur. Bu bir sorun teşkil ediyor. Çözünürlük olarak IEEE-754 tek duyarlıklı 32 bit kayan nokta gösterimi ve IEEE-754 çift duyarlıklı 64 bit kayan nokta gösterimi vardır.

32-Bit Kayan Noktalı Sayı Formatı
100100.0112 sayısı şu şekilde ifade edilebilir:

100100.011 2 = 1,00100011 2 x 2 +5

= sembolünün sağ tarafı matematikte 100100.011'in sol tarafının temel iki standart formu olarak anılır. 2 .

Şimdi, 00100011/1.00100011 2 = sembolünün sağ tarafında, önünde “1” olmadan. ve taban için 2 olmadan açık anlamlılık denir. Bu durumda “1”i alabilmek için ikili nokta beş basamak sola alınır. Ondalık nokta ile ikili noktayı karıştırmayın. İkilik nokta 2 tabanı içindir, ondalık nokta ise 10 tabanı içindir. “1.” = sembolünün sağ tarafında 00100011'in ardından gelen sayı, tabanda 2 olmadan, gerçek anlamı oluşturur. Ancak 1,00100011'e örtülü anlamlı denir.

Sağ taraftaki anlamlıdan sonra “x 2 +5 ' ifade. Bu ifadeyle +5'e üs denir. Artı işareti, ikili noktanın normal orijinal konumunda olması için beş basamak ileriye taşınması gerektiği anlamına gelir ve 2, numaralandırmanın temelidir. Önceki denklem tersten şu şekilde yazılabilir:

1.00100011 2 x 2 +5 = 100100.011 2

32 bit kayan nokta gösterimiyle “1.00100011” 2 x 2 +5 Sadece “100100.011” değil, ” kullanılıyor 2 ”. Taban için 2 kaydedilmedi. “1.00100011” için 32 bitlik kayan nokta gösterimi 2 x 2 +5 ” 36.375'e eşit olan sayı 10 = 100100.011 2 , aşağıdaki tabloda gösterilmektedir:

Sağ uçtan başlayarak 0'dan başlayarak numaralandırılan 32 bitlik konumlar vardır. Sol uçtaki ilk bit işaret bitidir. Sayı pozitifse bu bit 0'dır. Sayı negatifse bu bit 1'dir (-1 iki karakterden oluşur ve herhangi bir hücreye konulamaz). 1.00100011 2 x 2 +5 bu da 36.375'e eşit 10 bu da 100100.011'e eşittir 2 pozitif bir sayıdır. Yani ilk bit 0'dır.

Üs için 30. pozisyondan 23. pozisyona kadar sekiz bit pozisyonu vardır. Ancak orada yazan üs 10000100 2 bu da 132'ye eşit 10 . İlgilenilen sayının üssü aslında iki tabanının +5'idir. Peki ne olur?

Artık 32 bit formatında 0 üssü 01111111 olarak yazılıyor 2 bu da 127'ye eşit 10 . +5 10 +101 2 . Yani 10000100’e varırken 2 tablonun üs kısmında, 101 2 01111111'e eklendi 2 , buna uygun olarak. Bu, 127'ye 5 eklendiğinde 132 olduğu anlamına gelir. 10 .

“1.” olmadan anlamlılık, 22'den 15'e kadar olan konumları aldı. “1”in 1’ine dikkat edin. 32 bitlik dizede belirtilmemiştir. Asla belirtilmez – bunu kabul edin. 0 konumuna kadar olan hücrelerin geri kalanı sıfırlarla doldurulur.

Gerçek üs -5 ise 127'den 5 çıkarılır 10 122'ye sahip olmak 10 . Bu 101'in çıkarılmasına karşılık gelir 2 01111111'den itibaren 2 01111010'a sahip olmak 2 .

Önceki tüm çizimlerde, 1,0 x 2'ye eşit olan +1 sayısı 0 = 1,0 x 1 = 1,0 şu şekilde temsil edilir:

“1” olduğuna dikkat edin. 1,0 x 2 0 biçiminde belirtilmemiştir. Hiçbir zaman belirtilmez. 1,0'dan sonra pozitif giden bir sonraki karışık kesir:

Sağ uçtaki 1'e dikkat edin. Bu temsil sayıdır:

1,0000001192092896 ile 1,0 arasındaki fark:

1,0000001192092896 – 1,0 = 0,0000001192092896

Ondalık kısımları olan sayılar karışık kesirlerdir. 1 arasındaki tüm kesirler değil 10 ve 2 10 bilgisayarda temsil edilebilir. 32 bitlik kayan nokta formatına sahip ardışık karma sayılar arasındaki en küçük kesirli aralığın 0,0000001192092896 olduğu varsayılabilir. Çift duyarlık aralığının daha küçük olmasını bekleyin. Aşağıdaki resme bakın.

Sayıyı temsil eden 0,0 önceki argümanları takip etmiyor. 0,0'ın temsili bildirilir ve bu şekilde öğrenilmesi gerekir. 0,0'ı temsil etmek için anlamlılığa ait tüm hücreler 0'dır ve üste ait tüm hücreler de sıfırdır. İşaret biti 0 veya 1 olabilir. Ne yazık ki bu, aşağıdaki gibi pozitif 0 ve negatif 0'a yol açar:

Gerçek hayatta tek bir sıfır vardır. Pozitif 0 ve negatif 0 mevcut değildir. Ancak 0 genellikle pozitif olarak kabul edilir. Bu özel format açıklaması nedeniyle pozitif 0 ve negatif 0 burada mevcuttur. Sayı doğrusunda (yukarı bakın) +0 ve -0 da olabilir, ancak yalnızca bir sıfır vardır.

64-Bit Kayan Noktalı Sayı Formatı
64 bit kayan nokta biçimi, 32 bit biçimine benzer ancak aşağıdaki farklar vardır:

  • Bir sayıyı temsil eden 64 bit vardır.
  • İşaret bitinden sonra üs numarası için 11 bit vardır.
  • Sıfır endeksinin üs sayısı (2 0 ) 1023 10 = 01111111111 2 .
  • Açık anlamlılık için on bir bitin ardından 52 bit gelir.
  • 32 bit formatına göre daha geniş bir sayı aralığına sahiptir.

“1” olduğuna dikkat edin. yani anlamın başındadır ve tıpkı 32 bit formatta 32 bit arasında yer almadığı gibi, hala 64 bit arasında yer almamaktadır.

64 bit format ile 32 bit format arasındaki en önemli farklardan biri, 64 bit formattaki ardışık karma kesirler arasındaki farkın 32 bit formattakinden daha küçük olmasıdır.

64 bit formatında, 1,0 ile bir sonraki karma kesir arasındaki aralık (boşluk) şu şekilde hesaplanabilir:

1.0:

0 0 01111111111 000000000000000000000 00000000000 0000000000000000000000 2

Bu, dizede belirtilmeyen '1.'in 2 ile çarpılarak (indeks) 0'a yükseltilmesine eşdeğerdir (üs 1023'tür). 10 = 01111111111 2 2 için 0 = 1). Dize 1,0 x 2'dir 0 .

1,0'dan büyük bir sonraki karışık kesir:

0 0 01111111111 000000000000000000000 00000000000 0000000000000000000001 2

Bu “1”e eşdeğerdir. dizede belirtilmeyen, ardından 51 sıfır gelir ve ardından 1, 2 ile çarpılır ve 0'ın üssü olur (üs 1023'tür). 10 = 011111111112 2 2 için 0 = 1). Bu şununla aynı:

+2 0 × (1 + 2− -52 ) ≈ 1,0000000000000002

≈ yaklaşık olarak eşit anlamına gelir.

Şimdi:

1,00000000000000002 – 1,0 ≈ 0,0000000000000002

32 bit format için karşılık gelen aralık değeri 0,0000001192092896 ≈ 0,00000012'dir.

0,00000000000000002, 0,00000012'den çok daha küçüktür. Dolayısıyla, 64 bitlik formatta ardışık iki tam sayı (örneğin 3 ve 4) arasında, 32 bitlik formattaki ardışık iki tam sayı arasında olduğundan çok daha fazla karışık kesir vardır.

Sayı doğrusunda ardışık iki tam sayı arasındaki tam sayılı kesirlerin sayısı sonsuzdur. Dolayısıyla hiçbir format (örneğin 32 bit veya 64 bit), herhangi iki ardışık tam sayı (tam sayılar) arasındaki karışık kesirlerin tamamını sağlayamaz. Bir format (örneğin 32 bit veya 64 bit) tarafından sağlanan iki ardışık tam sayı arasındaki boşluk (aralık) ne kadar küçük olursa, ardışık tam sayılar (sayı doğrusu için) arasındaki karışık kesirlerin sayısı da o kadar büyük olur.

64 bit formatının 32 bit formata göre iki kat veya daha yüksek hassasiyet olarak tanımlanmasının nedenleri, 64 bit format için ardışık iki tamsayı ile sınırlanan iki ardışık karışık kesir arasındaki aralığın karşılık gelen 32'den daha küçük olmasıdır. -bit biçim aralığı. Ayrıca, 64 bitlik format için iki sınırlı tamsayı arasında 32 bitlik formata göre daha fazla olası karışık kesir vardır.

Ondalık Sayının Ondalık Kısmını (Kesir) İkili Kısma Dönüştürme
36.375, ondalık kısmı “.375” olan bir ondalık sayıdır. “.375”in ondalık kısmı sıfır ile bir arasında bir kesirdir. On tabanındaki 0,5, iki tabanındaki 1/2 değeriyle aynıdır. 0.5 10 iki tabanındaki açılımla ifade edilir:

0,101 değil 2 yani 0,625 10 . Ondalık sayının ondalık kısmı, karşılık gelen ikili sayı için eşdeğer ikili kısma sahiptir. Yani 36.375 gibi bir ondalık sayıyı dönüştürmek için 10 iki tabanına, 36'yı ikiliye dönüştürün ve ardından .375'i de ikiliye dönüştürün. Daha sonra her iki sonucu da ikili noktayla birleştirin. İki bölümü dönüştürme yöntemleri farklıdır. Ondalık bir tam sayının 2 tabanına nasıl dönüştürüleceği 1. bölümde anlatılmaktadır.

Ondalık kesri ikili kesire dönüştürmek için aşağıdaki adımları izleyin:

  • Ondalık kesri (ondalık kısmı) 2 ile çarpın. Bunun sonucunda elde edilen tam sayı, ilk ikili rakamdır.
  • Bir sonraki ikili rakamı elde etmek için önceki adımı kesirli ondalık sonuçla tekrarlayın.
  • Ondalık kesirli sonuç 0,0000— olana kadar önceki adımı tekrarlamaya devam edin.

Örnek: 36,375'in kesirli kısmını dönüştürün 10 ikinci tabandaki eşdeğer kesirli kısma.

Çözüm:

Üçüncü adımda 1.500'ün değil 0.500'ün 2 ile çarpıldığını unutmayın. İkili karşılık gelen kesir üstten son sütunda okunur. Ve böylece aşağıdaki sonuç ortaya çıkar:

0,375 10 = 0,011 2

İkili Sayının İkili Kısmını (Kesir) Ondalık Kısma Dönüştürme
Bunu başarmak için ikili kesri 2'nin karşılıklı kuvvetlerine göre genişletin.

Örnek: 100100.011'in kesirli kısmını dönüştürün 2 on tabanındaki eşdeğer kesirli kısma.

Çözüm:

3.10 Hesaplamada Sayı Önekleri

Normal hayatta 1 kilo 1000 anlamına gelir ve 1kg gibi k (küçük harf) olarak kısaltılır. Bilgisayarda 1 kilo 2 demektir 10 = 1024, ancak 1Kbit olarak K (büyük harf) olarak kısaltılmıştır. Normal hayatta 1 mega 1.000.000 anlamına gelir ve 1Mg gibi M (büyük harf) olarak kısaltılır. Bilgisayarda 1 mega, 2 anlamına gelir yirmi = 1.048.576 = 2 10 x 2 10 = 1024 x 1024 = 1,048,576 ve hala 1Mbit olarak M (büyük harf) olarak kısaltılmıştır. Normal hayatta 1 giga, 1.000.000.000 anlamına gelir ve 1Gg'de olduğu gibi G (büyük harf) ile kısaltılır. Bilgisayarda 1 giga 2 anlamına gelir 30 = 1.073.741.824 = 2 10 x 2 10 x 2 10 = 1024 x 1024 x 1024 = 1,073,741,824 ve hala 1 Gbit'te olduğu gibi G (büyük harf) olarak kısaltılmıştır. Aşağıdaki tablo normal yaşamda ve bilgisayar kullanımında dört önekin anlamını vermektedir:

3.11 Sorunlar

Okuyucunun bir sonraki bölüme geçmeden önce bir bölümdeki tüm sorunları çözmesi tavsiye edilir.

  1. -10'dan +10'a kadar tamsayılardan oluşan bir sayı doğrusu çizin.
  2. 8 bitlik ikinin tamamlayıcısına aşağıdaki ikili sayıları ekleyin: 101010 2 ve 1111 2 .
  3. 1111 ikili sayısını çıkarmak için 8 bitte yalnızca ikinin tümleyeni yaklaşımını kullanın 2 101010 ikili sayısından 2 .
  4. 10110 ürününü bulun 2 x 1101 2 ikinci tabanda.
  5. 36.375'i böl 10 1000'e kadar 10 ondalık ve ikili olarak ve sonuçları karşılaştırın.
  6. Mantıksal VE, VEYA, XOR, Tersine Çevir, Sağa Kaydır, Sola Kaydır, Sağa Döndür ve Sola Döndür'ü göstermek için seçtiğiniz 8 biti kullanın. Her bayt 1 ve 0'lardan oluşan bir karışıma sahip olmalıdır.
  7. a) Sıfırın ASCII karakterinin sayısal kodunu onaltılık, ikili ve onluk sistemde yazın.
    b) “1”in ASCII karakterinin sayısal kodunu onaltılık, ikili ve onluk sistemde yazın.
    c) “A”nın ASCII karakterinin sayısal kodunu onaltılık, ikili ve onluk sistemde yazın.
    d) “a”nın ASCII karakterinin sayısal kodunu onaltılık, ikili ve onluk sistemde yazın.
  8. 49,49'u dönüştür 10 ikinci tabana. Sonucunuzu IEEE 32 bit kayan nokta biçimine dönüştürün.
  9. a) IEEE 64 bit kayan nokta formatının 32 bit formattan farkı nedir?
    b) 64 bit formatının neden iki kat veya daha yüksek hassasiyet olarak tanımlandığının ilgili iki nedenini açıklayın.
    32 bit formatı.