İşaretli İkili Sayılar / Signed Binary Numbers

İşaretli ikili sayılar, pozitif sayılar veya negatif sayılar aralığını görüntülemek için MSB’yi bir işaret biti olarak kullanır.

Matematikte pozitif sayılar (sıfır dahil) işaretsiz sayılar olarak temsil edilir. Yani pozitif sayılar olduklarını göstermek için önlerine + işaretini koymuyoruz.

Bununla birlikte, negatif sayılarla uğraşırken, sayının değer olarak negatif olduğunu ve pozitif bir işaretsiz değerden farklı olduğunu göstermek için sayının önünde bir – işareti kullanırız ve aynısı işaretli ikili sayılar için de geçerlidir.

Ancak sayısal devrelerde sayısal sistemler “0’lar” ve “1’ler” ile temsil edilen ikili sayılarla çalıştığı için bir sayıya artı hatta eksi işareti koymak gibi bir hüküm yoktur. Mikroişlemciler veya mikrodenetleyicilerle birlikte kullanıldıklarında, bit olarak adlandırılan bu “1’ler” ve ” 0’lar” ( BI nary digi T ‘nin kısaltmasıdır).

Ayrıca daha önce 8 bitlik bir ikili sayının (bir bayt) 0 (00000000 2 ) ile 255 (111111111 2 ) arasında bir değere sahip olabileceğini, yani tek bir 8 bitlik bir sayı  oluşturan 2 8 = 256 farklı bit kombinasyonunu gördük. Örneğin , ondalık olarak 01001101 2  = 64 + 8 + 4 + 1 = 7710 gibi işaretsiz ikili sayı. Ancak dijital sistemler ve bilgisayarlar, pozitif sayıların yanı sıra negatif sayıları da kullanabilmeli ve değiştirebilmelidir.

Matematiksel sayılar genellikle bir işaret ve işaretin sayının pozitif, ( +  ) veya negatif olduğunu belirttiği bir değerden (büyüklük)  , (  –  ) ve sayının büyüklüğünü gösteren değerden oluşur, örneğin 23, + 156 veya -274. Sayıların sunulması bu moda “işaret-büyüklük(sign-magnitude)” gösterimi denir, çünkü en soldaki basamak işareti belirtmek için kullanılabilir ve kalan basamaklar sayının büyüklüğünü veya değerini gösterir.

İşaret-büyüklük gösterimi, pozitif ve negatif sayıları sıfırın ( 0 ) her iki tarafında temsil etmenin en basit ve en yaygın yöntemlerinden biridir . Böylece negatif sayılar, her bir pozitif veya işaretsiz sayının, örneğin +2 ve -2, +10 ve -10, vb. gibi işaretli bir tersi olacağından, karşılık gelen pozitif sayının işareti değiştirilerek elde edilir.

Ama sahip olduğumuz tek şey bir ve sıfırdan ibaretse, işaretli ikili sayıları nasıl temsil edeceğiz? İkili rakamların veya bitlerin “1” veya “0” olmak üzere yalnızca iki değeri olduğunu biliyoruz ve bizim için uygun olarak, bir işaretin de “ + ” veya “  ” olmak üzere yalnızca iki değeri vardır .

Ardından, işaretli bir ikili sayının işaretini değer olarak pozitif veya negatif olarak tanımlamak için tek bir bit kullanabiliriz . Yani pozitif bir ikili sayı ( +n ) ve bir negatif ( -n ) ikili sayıyı temsil etmek için bunları bir işaret ekleyerek kullanabiliriz.

İşaretli ikili sayılar için işaret biti olarak en anlamlı bit (MSB) kullanılır. İşaret biti “0” ise, bu sayının değer olarak pozitif olduğu anlamına gelir. İşaret biti “1” ise sayının değeri negatiftir. Sayıda kalan bitler, olağan işaretsiz ikili sayı biçiminde ikili sayının büyüklüğünü temsil etmek için kullanılır.

Ardından, İşaret ve Büyüklük (SM) gösteriminin, “n” toplam bitini iki parçaya bölerek pozitif ve negatif değerleri sakladığını görebiliriz: işaret için 1 bit ve saf bir ikili olan değer için n–1 bit. Örneğin, ondalık sayı 53, 8 bitlik işaretli bir ikili sayı olarak aşağıdaki gibi ifade edilebilir.

işaretli ikili sayılar
Pozitif işaretli ikili sayı
işaretli ikili sayılar
Negatif işaretli ikili sayı

Buradaki dezavantaj, daha önce tam aralıklı bir n-bit işaretsiz ikili sayıya sahipken, şimdi n-1 bitlik işaretli bir ikili sayıya sahip olmamız ve aşağıdakilerden daha düşük bir rakam aralığı vermemizdir:

-2 (n-1)   ile +2 (n-1)

Örneğin: işaretli bir ikili sayıyı temsil edecek 4 bitimiz varsa ( İşaret biti için 1 bit ve Büyüklük bitleri için 3 bit ), o zaman işaret büyüklüğü gösteriminde temsil edebileceğimiz gerçek sayı aralığı:

-2 (4-1)  – 1 ile +2 (4-1)  – 1

-2 (3)  – 1 ile +2 (3)  – 1

-7 ile +7

Önceden, işaretsiz 4 bitlik bir ikili sayının aralığı, on altılık olarak 0 ila 15 veya 0 ila F arasındayken, şimdi -7 ila +7 arasında azaltılmış bir aralığımız var. Bu nedenle, işaretsiz bir ikili sayının tek bir işaret biti yoktur ve bu nedenle en anlamlı bit (MSB) kullanılan bir işaret biti yerine fazladan bir bit veya rakam olduğundan daha büyük bir ikili aralığa sahip olabilir.

Burada işaret büyüklüğü formunun diğer bir dezavantajı, sıfır, +0 veya 00002 için olumlu sonuç olmasıdır ve sıfır için negatif bir sonuç, -0 veya 10002 . İkisi de geçerli ama hangisi doğru karar veremeyiz.

İşaretli İkili Sayı Soru Örneği 1

İşaret büyüklüğü biçimini kullanarak aşağıdaki ondalık değerleri işaretli ikili sayılara dönüştürün:

-1510 , 6 bitlik bir sayı olarak1 01111 2
  +2310 , 6 bitlik bir sayı olarak0 10111 2
-5610 , 8 bitlik bir sayı olarak1 0111000 2
  +8510 , 8 bitlik bir sayı olarak 0 1010101 2
-12710 , 8 bitlik bir sayı olarak1 11111111 2

4-bit, 6-bit, 8-bit, 16-bit veya 32-bit işaretli ikili sayı için tüm bitlerin bir değeri olması ZORUNLUDUR, bu nedenle en soldaki işaret biti ile arasındaki boşlukları doldurmak için “0’lar” kullanılır. ilk veya en yüksek değer “1” olmalıdır.

Bir ikili sayının işaret büyüklüğü gösterimi, işaretli ikili sayıları temsil etmek için kullanımı ve anlaşılması basit bir yöntemdir, çünkü bu sistemi matematikte her zaman normal ondalık (taban 10) sayılarla kullanırız. İkili sayı negatifse önüne “1”, pozitifse “0” eklenir.

Bununla birlikte, bu işaret büyüklüğü yönteminin kullanılması, aynı ikili değere sahip iki farklı bit deseninin olasılığı ile sonuçlanabilir. Örneğin, +0 ve -0 , imzalı 4 bitlik ikili sayı olarak sırasıyla 0000 ve 1000 olur . Bu yöntemi kullanarak orada, sıfır için iki temsillerini olmak olumlu bir sıfır (ki görebilirsiniz Yani  0 000 2  ) ve ayrıca bir negatif sıfır (  1 000 2  bilgisayar ve dijital sistemler için büyük komplikasyonlara neden olabilir).

İşaretli İkili Sayının Birin Tamamlayıcısı(One’s Complement)

Birin Tamamlayıcısı olarak da adlandırılan, işaretli bir ikili sayı sisteminde negatif ikili sayıları temsil etmek için kullanabileceğimiz başka bir yöntemdir. Birinin tümleyeninde, pozitif sayılar (tamamlayıcı olmayanlar olarak da bilinir), işaret büyüklüğündeki sayılarda olduğu gibi değişmeden kalır.

Ancak negatif sayılar, işaretsiz pozitif sayının tümleyeni (inversiyon, olumsuzlama) alınarak temsil edilir. Pozitif sayılar her zaman “0” ile başladığından, tümleyen negatif bir sayıyı belirtmek için her zaman “1” ile başlayacaktır.

Negatif bir ikili sayının bire tümleyeni, onun pozitif karşılığının tümleyenidir, yani bir ikili sayının tümleyenini almak için tek yapmamız gereken her biti sırayla değiştirmektir. Bu nedenle, “1”, birinin tamamlayıcısı olan “0” ya da tam tersi, o zaman tamamlayıcı 10010100 2 basitçe 01101011 2 tümü 1 1 ‘s 0 ve 0’ s değiştirildi gibidir.

Sayısal aritmetik veya mantık kod çözücü devreleri kurarken işaretli bir ikili sayının tümleyenini bulmanın en kolay yolu inverter kullanmaktır. İnverter doğal olarak tamamlayıcı bir jeneratördür ve gösterildiği gibi herhangi bir ikili sayının 1’in tümleyenini bulmak için paralel olarak kullanılabilir.

işaretli ikili sayılar
İnverter Kullanan Tamamlayıcı

Ayrıca, önceki işaret büyüklüğü gösterimi gibi, tümleyeni de -2 (n-1)   ve   +2 (n-1) – 1 aralığındaki sayıları temsil etmek için n-bitlik gösterime sahip olabilir. Örneğin, birinin tümleyen biçimindeki 4 bitlik bir gösterim, -7 ile +7 arasındaki ondalık sayıları temsil etmek için iki sıfır gösterimi ile kullanılabilir: 0000 (+0) ve 1111 (-0) öncekiyle aynı .

Birin Tamamlayıcısını Kullanarak Toplama ve Çıkarma

Birin tamamlayıcısının ana avantajlarından biri, iki ikili sayının toplanması ve çıkarılmasıdır. Matematikte çıkarma, A – B gibi çeşitli şekillerde uygulanabilir, A + (-B) veya -B + A vb. demekle aynıdır . Bu nedenle, iki ikili sayı çıkarmanın karmaşıklığı basitçe yapılabilir.

İkili Toplayıcı eğitiminde, ikili toplamanın , ikili sistemde yalnızca iki bit (rakam) olması ve en büyük basamağın “1” olması (tıpkı “9”un en büyük olması gibi) dışında normal toplamayla aynı kuralları izlediğini gördük. ondalık basamak) dolayısıyla ikili toplama için olası kombinasyonlar aşağıdaki gibidir:

0011 
+ 0+ 1+ 0+ 1 
0111← 0 (0 artı bir taşıma 1)

Eklenecek iki sayının her ikisi de pozitif olduğunda, A + B toplamı, doğrudan toplam yoluyla (sayı ve bit işareti dahil) birlikte toplanabilir, çünkü tek bitler birlikte eklendiğinde, “0 + 0” , “0 + 1” veya “1 + 0” toplamı “0” veya “1” ile sonuçlanır. Bunun nedeni, toplanmasını istediğimiz iki bitin tek (“0” + “1” veya “1 + 0”) olması durumunda sonucun “1” olmasıdır. Aynı şekilde, eklenecek iki bit çift olduğunda (“0 + 0” veya “1 + 1”) sonuç “0” olur, “1 + 1” olana kadar, toplam “0” artı a’ya eşittir. “1” taşıyın. Basit bir örneğe bakalım.

İki İkili Sayının Çıkarılması

Aşağıdaki iki sayı 115 ve 27’yi birinin tümleyenini kullanarak birbirinden çıkarmak için 8 bitlik bir dijital sistem gerekir. Yani ondalık olarak bu şöyle olur: 115 – 27 = 88 .

İlk önce iki ondalık sayıyı ikili sayıya dönüştürmemiz ve 8 bitlik bir sayı (bayt) üretmek için baştaki sıfırları ekleyerek her sayının aynı sayıda bit olduğundan emin olmamız gerekir. Öyleyse:

115 10   ikili sayı :   01110011 2

27 10    ikili sayı :   00011011 2

Şimdi ilk sayıyı ( 01110011 ) değişmeden bırakırken ikinci ikili sayının ( 00011011 ) tümleyenini bulmamız gerekiyor . Yani 1’ler 0 ve 0 lar tüm 1’leri değiştirerek, birin tümleyenine 00011011 nedenle —> 11100100 .

İlk sayının ve ikinci sayının tümleyeninin eklenmesi şunları verir:

01110011
+  11100100
Taşma →  1  01010111

Sayısal sistem 8 bit ile çalışacağından, toplamın cevabını sağlamak için sadece ilk sekiz basamak kullanılır ve biz sadece son biti (bit 9) görmezden geliriz. Bu bit “taşma” biti olarak adlandırılır. Taşma, en önemli (en soldaki) sütunun toplamı bir ileri taşıma ürettiğinde meydana gelir. Bu taşma veya taşıma biti tamamen yok sayılabilir veya hesaplamalarında kullanılmak üzere bir sonraki dijital bölüme geçirilebilir. Taşma, cevabın olumlu olduğunu gösterir. Taşma yoksa cevap olumsuzdur.

Yukarıdaki 8 bitlik sonuç: 01010111 (“1” taşması iptal eder) ve onu birin tümleyen yanıtından gerçek cevaba geri çevirmek için, şimdi birin tümleyen sonucuna “1” eklemeliyiz, bu nedenle:

01010111
+  1
01011000

Dolayısıyla, ikili olarak 1’in tamamlayıcısını kullanarak 115’ten ( 01110011 2 ) 27 ( 00011011 2 ) çıkarmanın sonucu şu yanıtı verir: ondalık olarak 01011000 2 veya (64 + 16 + 8) = 88 10 .

Ardından, Bir’in Tamamlayıcısı ve toplama işlemi kullanılarak işaretli veya işaretsiz ikili sayıların birbirinden çıkarılabileceğini görebiliriz . TTL 74LS83 veya 74LS283 gibi ikili toplayıcılar, iki adet 4 bitlik işaretli ikili sayı eklemek veya çıkarmak için kullanılabilir veya yürütme ile tamamlanmış 8 bitlik toplayıcılar üretmek için birlikte basamaklandırılabilir.

İki’nin İşaretli İkili Sayının Tamamlayıcısı

İkinin Tamamlayıcısı veya 2’nin Tamamlayıcısı olarak da adlandırılır, önceki işaret büyüklüğü ve birinin tümleyen formu gibi, işaretli bir ikili sayı sisteminde negatif ikili sayıları temsil etmek için kullanabileceğimiz başka bir yöntemdir. İkinin tümleyeninde, pozitif sayılar, işaretsiz ikili sayılar için öncekiyle tamamen aynıdır. Bununla birlikte, negatif bir sayı, karşılık gelen pozitif eşdeğerine eklendiğinde sıfırla sonuçlanan ikili bir sayı ile temsil edilir.

İkinin tümleyen formunda, negatif bir sayı, pozitif sayısının 2’nin tümleyenidir ve iki sayının çıkarılması A – B = A + ( 2’nin tümleyeni B ) olmak üzere öncekiyle hemen hemen aynı işlemi kullanarak temelde ikinin tümleyeni birin tümleyenidir.

İkinin tümleyeninin bir öncekinin tamamlayıcısına göre ana avantajı, çift sıfır sorunu olmaması ve ikisinin imzalı bir ikili sayının tümleyenini oluşturmanın çok daha kolay olmasıdır. Bu nedenle, sayılar ikisinin tümleyen biçiminde temsil edildiğinde aritmetik işlemlerin gerçekleştirilmesi nispeten daha kolaydır.

İkinin tümleyenini kullanarak 115 ve 27 numaralı iki 8 bitlik sayılarımızın yukarıdan çıkarılmasına bakalım ve yukarıdan ikili eşdeğerlerin olduğunu hatırlayalım:

11510   ikili sayı :   011100112

2710    ikili sayı :   000110112

Sayılarımız 8 bit uzunluğundadır, ardından değerlerimizi temsil edecek 28 basamak vardır ve ikili olarak bu şuna eşittir: 100000000 2 veya 25610 . O zaman ikinin 2710‘a tümleyeni şöyle olacaktır:

(2 8 ) 2  – 00011011 = 100000000 – 00011011 = 11100101 2

İkinci negatif sayının tümleyeni, çıkarmanın iki sayının toplanmasının çok daha kolay olduğu anlamına gelir, bu nedenle toplam: 115 + (2’nin 27’nin tümleyeni) yani:

01110011 + 11100101 =  1  01011000 2

Daha önce olduğu gibi, sadece ilk 8 bit ile ilgilendiğimiz için 9. taşma biti dikkate alınmaz, bu nedenle sonuç: 01011000 2 veya (64 + 16 + 8) = 88 10 ondalık olarak öncekiyle aynı.

Özetle

Negatif ikili sayıların işaret biti olarak en anlamlı biti (MSB) kullanarak temsil edilebileceğini gördük. n bit ikili sayı imzalanır soldaki bit bırakarak işareti göstermek için kullanılan n-1 bit sayısını temsil eder.

Örneğin, 4 bitlik bir ikili sayıda bu, gerçek sayıyı tutmak için yalnızca 3 bit bırakır. Bununla birlikte, ikili sayı işaretsizse, tüm bitler sayıyı temsil etmek için kullanılabilir.

İşaretli bir ikili sayının temsili, genel olarak işaret büyüklüğü gösterimi olarak adlandırılır ve işaret biti “0” ise sayı pozitiftir. İşaret biti “1” ise sayı negatiftir. İkili aritmetik işlemlerle uğraşırken, negatif sayının tümleyenini kullanmak daha uygundur.

Tamamlama, negatif ikili sayıları temsil etmenin alternatif bir yoludur. Bu alternatif kodlama sistemi, basit toplama kullanarak negatif sayıların çıkarılmasına izin verir.

Pozitif işaret büyüklüğündeki sayılar her zaman sıfır (0) ile başladığından, tamamlayıcısı bu nedenle aşağıdaki tabloda gösterildiği gibi negatif bir sayıyı belirtmek için her zaman bir (1) ile başlayacaktır.

Ondalıkİşaretli Büyüklükİşaretli Tamamlayıcıİşaretli İki’nin Tamamlayıcısı
+7011101110111
+6011001100110
+5010101010101
+4010001000100
+3001100110011
+2001000100010
+1000100010001
+0000000000000
-010001111
-1100111101111
-2101011011110
-3101111001101
-4110010111100
-5110110101011
-6111010011010
-7111110001001