16'dan 10'a kadar numaralandırma sistemi çevrimiçi. Bir çözümle sayıları farklı sayı sistemlerine dönüştürme

  • 13.05.2019

Sadece sınava girenler için değil...

Okullardaki bilgisayar bilimi derslerinde, öğrencilere sayıları bir sistemden diğerine aktarmanın genellikle en zor ve uygunsuz yolunun gösterilmesi gariptir. Bu yöntem, orijinal sayının tabana sıralı olarak bölünmesinden ve bölmeden kalanların ters sırada toplanmasından oluşur.

Örneğin, 810 10 sayısını ikili sisteme dönüştürmeniz gerekir:

Sonucu aşağıdan yukarıya ters sırada yazıyoruz. 81010 = 11001010102 çıkıyor

Oldukça büyük sayıları ikili sisteme çevirmeniz gerekiyorsa, bölme merdiveni çok katlı bir binanın boyutunu alır. Ve sıfırları olan tüm olanları nasıl toplayabilir ve tek bir tanesini kaçırmazsınız?

Bilgisayar bilimindeki USE programı, sayıların bir sistemden diğerine çevrilmesiyle ilgili çeşitli görevleri içerir. Tipik olarak, bu 8- ve 16-ary sistemler ile ikili sistem arasındaki bir dönüşümdür. Bunlar A1, B11 bölümleridir. Ancak, B7 bölümündeki gibi diğer sayı sistemlerinde de sorunlar vardır.

Başlangıç ​​olarak, gelecekteki meslekleri olarak bilgisayar bilimini seçenler için ezbere bilmenin iyi olacağı iki tabloyu hatırlayalım.

2 numaralı güç tablosu:

2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10
2 4 8 16 32 64 128 256 512 1024

Bir önceki sayıyı 2 ile çarparak kolayca elde edilir. Yani, tüm bu sayıları hatırlamıyorsanız, hatırladığınızdan geri kalanını aklınızdan çıkarmak kolaydır.

Onaltılık gösterimle 0'dan 15'e kadar ikili sayılar tablosu:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 1 2 3 4 5 6 7 8 9 A B C NS E F

Bilinen değerlere 1 eklenerek eksik değerlerin hesaplanması da kolaydır.

Tamsayı çevirisi

Öyleyse, doğrudan ikili sisteme çevirerek başlayalım. Aynı sayıyı 810 10 alalım. Bu sayıyı ikinin kuvvetlerine eşit terimlere genişletmemiz gerekiyor.

  1. 2'nin 810'a en yakın gücünü arıyoruz, onu geçmiyoruz. Bu 2 9 = 512'dir.
  2. 298 elde etmek için 512'yi 810'dan çıkarın.
  3. 1 veya 0 kalana kadar 1. ve 2. adımları tekrarlayın.
  4. Bunu şöyle elde ettik: 810 = 512 + 256 + 32 + 8 + 2 = 2 9 + 2 8 + 2 5 + 2 3 + 2 1.
O zaman iki yol var, bunlardan birini kullanabilirsiniz. Herhangi bir sayı sisteminde tabanının her zaman 10 olduğunu görmek kolaydır. Tabanın karesi her zaman 100, küp 1000 olacaktır. Yani sayı sisteminin tabanının derecesi 1 (bir) ve arkasında derece kadar sıfır vardır.

Yöntem 1: Terimlerin göstergesi olan bu kategorilere göre 1'i düzenleyiniz. Örneğimizde bunlar 9, 8, 5, 3 ve 1'dir. Diğer yerlerde sıfırlar kullanılacaktır. Böylece, 810 10 = 1100101010 2 sayısının ikili gösterimini elde ettik. Birimler sağdan sola sıfırdan sayarak 9., 8., 5., 3. ve 1. sırada yer alır.

Yöntem 2: Terimleri en büyüğünden başlayarak alt alta yazalım.

810 =

Şimdi bu adımları bir yelpaze kıvrımları olarak bir araya getirelim: 1100101010.

Bu kadar. Yol boyunca, "810 sayısının ikili gösteriminde kaç birim var?" Sorunu da basitçe çözüldü.

Cevap, böyle bir temsilde terimler (ikinin kuvveti) olduğu kadardır. 810'da 5 tane var.

Şimdi örnek daha basit.

63 sayısını 5'li sayı sistemine çevirelim. 5'in 63'e en yakın kuvveti 25'tir (kare 5). Küp (125) zaten çok olacak. Yani 63, kare 5 ile küp arasında yer alır. Sonra 5 2 katsayısını seçiyoruz. Bu 2.

63 10 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 223 5 elde ederiz.

Ve son olarak, 8- ve 16-ary sistemler arasında çok kolay çeviriler. Tabanları ikinin kuvveti olduğundan, çeviri, yalnızca rakamları ikili gösterimleriyle değiştirerek otomatik olarak yapılır. Sekizli sistem için, her basamak üç ikili basamak ve onaltılık sistem için dört ile değiştirilir. Bu durumda, en önemli basamak hariç, baştaki tüm sıfırlar gereklidir.

547 8 sayısını ikili sisteme çevirme.

547 8 = 101 100 111
5 4 7

Bir diğeri, örneğin 7D6A 16.

7D6A 16 = (0)111 1101 0110 1010
7 NS 6 A

7368 sayısını onaltılık sisteme çevirelim.Önce sayıları üçerli yazalım ve sondan itibaren dört haneye bölelim: 736 8 = 111 011 110 = 1 1101 1110 = 1DE 16. C25 16 sayısını 8'li sisteme çevirelim. Önce sayıları dörderli yazıyoruz, sonra sondan üçe bölüyoruz: C25 16 = 1100 0010 0101 = 110 000 100 101 = 6045 8. Şimdi tekrar ondalık sayıya dönüştürmeye bakalım. Emeği temsil etmiyor, asıl şey hesaplamalarda yanılmamak. Sayıyı, tabanın dereceleri ve üzerlerindeki katsayılarla bir polinom haline getiriyoruz. Sonra çarpıyoruz ve her şeyi ekliyoruz. E68 16 = 14 * 16 2 + 6 * 16 + 8 = 3688. 732 8 = 7 * 8 2 + 3 * 8 + 2 = 474.

Negatif sayıların çevirisi

Burada sayının tamamlayıcı kodda temsil edileceğini hesaba katmanız gerekir. Bir sayıyı tamamlayıcı bir koda çevirmek için sayının son boyutunu, yani onu neye yazmak istediğimizi bilmeniz gerekir - bir bayt olarak, iki bayt olarak, dört olarak. Bir sayının en anlamlı biti bir işaret anlamına gelir. 0 ise sayı pozitif, 1 ise negatiftir. Solda, sayı bir işaret basamağı ile tamamlanır. İşaretsiz sayıları dikkate almayız, her zaman pozitiftirler ve içlerindeki en önemli bit bilgi amaçlı kullanılır.

Negatif bir sayıyı ikili sistemin tümleyen koduna dönüştürmek için pozitif bir sayıyı ikili sisteme dönüştürmeniz, ardından sıfırları bire ve birleri sıfıra çevirmeniz gerekir. Ardından sonuca 1 ekleyin.

Şimdi -79 sayısını ikili sisteme çevirelim. Sayı bizi bir bayt alacaktır.

79'u ikili sisteme çeviriyoruz, 79 = 1001111. Solu bir bayt boyutuna sıfırlarla tamamlayın, 8 basamak, 01001111 elde ederiz. 1'i 0'a ve 0'ı 1'e değiştiririz. 10110000 elde ederiz. Sonuca 1 ekleriz. , 10110001 cevabını alıyoruz. Yol boyunca, "-79 sayısının ikili gösteriminde kaç birim var?" Sınavının sorusuna cevap veriyoruz. Cevap 4'tür.

Sayının tersine 1 eklenmesi, +0 = 00000000 ve -0 = 11111111 temsilleri arasındaki farkı ortadan kaldırır. İkinin tümleyeninde, bunlar aynı 00000000 olarak yazılacaktır.

Kesirli Sayılar Tercümesi

Kesirli sayılar, en başta ele aldığımız tam sayıların tabana bölünmesinin tersi şekilde çevrilir. Yani, yeni bir tabanla sıralı çarpma yardımıyla, tüm parçaları toplayarak. Çarpma sırasında elde edilen parçaların tamamı toplanır ancak aşağıdaki işlemlere katılmaz. Sadece kesirler çarpılır. Orijinal sayı 1'den büyükse, tam ve kesirli kısımlar ayrı ayrı çevrilir, ardından birbirine yapıştırılır.

0.6752 sayısını Binary'ye dönüştürün.

0 ,6752
*2
1 ,3504
*2
0 ,7008
*2
1 ,4016
*2
0 ,8032
*2
1 ,6064
*2
1 ,2128

Kesirli kısımda tüm sıfırları elde edene veya gerekli doğruluk elde edilene kadar işleme uzun süre devam edilebilir. Şimdilik 6. işarette duralım.

0,6752 = 0,101011 çıkıyor.

Sayı 5.6752 ise, ikili sistemde 101.101011 olacaktır.

1. Çeşitli sayı sistemlerinde sıralı hesap.

Modern hayatta, konumsal sayı sistemlerini, yani bir rakamla gösterilen sayının, sayı kaydındaki rakamın konumuna bağlı olduğu sistemleri kullanırız. Bu nedenle, aşağıda "konumsal" terimini atlayarak sadece onlar hakkında konuşacağız.

Sayıların bir sistemden diğerine nasıl çevrileceğini öğrenmek için, örnek olarak ondalık sistemi kullanarak sayıların sıralı kaydının nasıl gerçekleştiğini anlayalım.

Ondalık sayı sistemimiz olduğundan, sayıları oluşturmak için 10 karaktere (rakam) sahibiz. Sıra sayımına başlıyoruz: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Sayılar bitti. Sayının basamak kapasitesini artırıyoruz ve en az anlamlı biti sıfırlıyoruz: 10. Ardından, tüm basamaklar bitene kadar en az anlamlı biti tekrar artırıyoruz: 11, 12, 13, 14, 15, 16, 17, 18, 19. En anlamlı biti 1 artırın ve en az anlamlı olanı sıfırlayın: 20. Her iki basamak için de tüm rakamları kullandığımızda (99 sayısını elde ederiz), yine sayının basamak kapasitesini artırıp mevcut basamakları sıfırlarız: 100. Ve bunun gibi.

Aynısını 2., 3. ve 5. sistemlerde yapmaya çalışalım (2. sistem, 3. vb. için gösterimi tanıtacağız):

0 0 0 0
1 1 1 1
2 10 2 2
3 11 10 3
4 100 11 4
5 101 12 10
6 110 20 11
7 111 21 12
8 1000 22 13
9 1001 100 14
10 1010 101 20
11 1011 102 21
12 1100 110 22
13 1101 111 23
14 1110 112 24
15 1111 120 30

Sayı sisteminin tabanı 10'dan fazlaysa, ek karakterler girmemiz gerekecek, Latin alfabesinin harflerini girmek gelenekseldir. Örneğin, 12 basamaklı sistem için on basamağa ek olarak iki harfe (harflere) ihtiyacımız var:

0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10
11
12 10
13 11
14 12
15 13

2. Ondalık sayı sisteminden diğerine dönüşüm.

Bir tamsayı pozitif ondalık sayıyı farklı tabanlı bir sayı sistemine dönüştürmek için bu sayıyı tabana bölmeniz gerekir. Elde edilen bölümü tekrar tabana bölün ve bölüm tabandan küçük olana kadar daha da bölün. Sonuç olarak, son bölümü ve kalanları sondan başlayarak bir satıra yazın.

Örnek 1. Ondalık 46'yı İkili sayı sistemine dönüştürme.

Örnek 2. Decimal 672'yi Octal sayı sistemine dönüştürme.

Örnek 3. Ondalık sayı 934'ü onaltılık sayı sistemine dönüştürün.

3. Herhangi bir sayı sisteminden ondalık sayıya dönüştürme.

Sayıları başka herhangi bir sistemden ondalık sayıya nasıl dönüştüreceğinizi öğrenmek için, ondalık sayının olağan gösterimini analiz edelim.
Örneğin, 325 ondalık sayısı 5 birimdir, 2 onluk ve 3 yüzdür, yani.

Diğer sayı sistemlerinde durum tamamen aynıdır, sadece 10, 100 vb. ile değil, sayı sisteminin tabanının derecesi ile çarpacağız. 1201 numaralı üçlüyü örnek olarak alalım. Sıfırdan başlayarak sağdan sola rakamları numaralandıralım ve sayımızı bir rakamın çarpımlarının toplamı olarak sayının basamağının derecesine göre üç ile gösterelim:

Bu, sayımızın ondalık gösterimidir, yani.

Örnek 4. Sekizli sayı 511'i ondalık gösterime dönüştürme.

Örnek 5. Onaltılık sayı 1151'i ondalık sayı sistemine çevirelim.

4. İkili sistemden "ikinin kuvveti" (4, 8, 16 vb.) tabanlı sisteme geçiş.

İkili bir sayıyı "iki kuvveti" olan bir sayıya dönüştürmek için, ikili diziyi sağdan sola kuvvete eşit basamak sayısına göre gruplara bölmek ve her grubu karşılık gelen basamakla değiştirmek gerekir. yeni sayı sistemi

Örneğin, ikili 1100001111010110'u sekizliye dönüştürün. Bunu yapmak için, sağdan başlayarak (o zamandan beri) 3 karakterlik gruplara böleriz ve ardından yazışma tablosunu kullanırız ve her grubu yeni bir rakamla değiştiririz:

Madde 1'de bir yazışma tablosunun nasıl oluşturulacağını öğrendik.

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7

Onlar.

Örnek 6.İkili 1100001111010110 onaltılı sayıya dönüştürün.

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 NS
1110 E
1111 F

5. "İkinin gücü" (4, 8, 16, vb.) tabanlı sistemden ikiliye aktarın.

Bu çeviri, bir öncekine benzer, ters yönde gerçekleştirilir: her rakamı, ikili sistemdeki arama tablosundan bir grup rakamla değiştiririz.

Örnek 7. Onaltılık sayı C3A6'yı ikili sayı sistemine çevirelim.

Bunu yapmak için, sayının her basamağını yazışma tablosundan 4 basamaklı bir grupla (beri) değiştirin, gerekirse başlangıçta sıfır olan grubu ekleyin:



Bir mikroişlemcideki sayıları temsil etmek için kullanılır ikili sayı sistemi.
Bu durumda, herhangi bir dijital sinyalin iki kararlı durumu olabilir: "yüksek seviye" ve "düşük seviye". İkili sayı sisteminde, herhangi bir sayıyı temsil etmek için sırasıyla iki basamak kullanılır: 0 ve 1. İsteğe bağlı bir sayı. x = bir n bir n-1 ..a 1 bir 0, bir -1 bir -2… bir -m ikili olarak yazılacak

x = bir 2 n + bir n-1 2 n-1 +… + bir 1 2 1 + bir 0 2 0 + bir -1 2 -1 + bir -2 2 -2 +… + bir -m 2 -m

nerede bir ben- ikili rakamlar (0 veya 1).

Sekizli sayı sistemi

Sekizli sistemde, temel rakamlar 0'dan 7'ye kadar olan rakamlardır. En az anlamlı olan 8 birim, en anlamlı olanda birleştirilir.

Onaltılık sayı sistemi

Onaltılık gösterimde, temel rakamlar 0 ile 15 arasındaki rakamlardır. Bir karakterde 9'dan fazla temel basamak belirlemek için, 0 ... 9 Arap rakamlarına ek olarak, onaltılık sayı sisteminde Latin alfabesinin harfleri kullanılır:

10 10 = A 16 12 10 = C 16 14 10 = E 16
11 10 = B 16 13 10 = D 16 15 10 = F 16.

Örneğin onaltılık gösterimde 175 10 sayısı AF 16 olarak yazılacaktır. Yok canım,

10 16 1 + 15 16 0 = 160 + 15 = 175

Tablo, ondalık, ikili, sekizli ve onaltılık gösterim sistemlerinde 0'dan 16'ya kadar olan sayıları göstermektedir.

Ondalık İkili Sekizli onaltılık
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 NS
14 1110 16 E
15 1111 17 F
16 10000 20 10

İkiliden Sekizliye ve İkiliden Onaltılıya Dönüşümler

İkili sayı sistemi, mikroişlemcinin donanımı ile aritmetik işlemler yapmak için uygundur, ancak çok sayıda bit gerektirdiği için insan algısı için elverişsizdir. Bu nedenle, bilgisayar teknolojisinde, ikili sayı sistemine ek olarak, sayıların daha kompakt bir temsili için sekizli ve onaltılı sayı sistemleri yaygın olarak kullanılmaktadır.

Üç basamaklı sekizli sayı sistemi, ikili sayı sistemindeki olası tüm sekizlik basamak kombinasyonlarını uygular: 0 (000) ila 7 (111). İkili bir sayıyı sekizliğe dönüştürmek için, ikili sayıları ondalık ayırıcıdan başlayarak iki yönde 3 basamaklı (üçlü) gruplar halinde birleştirmeniz gerekir. Gerekirse, orijinal sayının soluna önemsiz sıfırlar ekleyin. Sayı bir kesirli kısım içeriyorsa, tüm üçlüler doldurulana kadar sağına önemsiz sıfırlar da eklenebilir. Daha sonra her üçlü, sekizli bir rakamla değiştirilir.

Örnek: 1101110.01 2'yi sekizliğe dönüştürün.

İkili rakamları sağdan sola üçlüler halinde birleştiriyoruz. alırız

001 101 110,010 2 = 156,2 8 .

Bir sayıyı sekizliden ikiliye dönüştürmek için, her sekizli basamağı ikili kodda yazmanız gerekir:

156,2 8 = 001 101 110,010 2 .

Dört basamaklı onaltılık sayı sistemi, ikili gösterimde onaltılık basamakların olası tüm kombinasyonlarını uygular: 0 (0000) ila F (1111). İkili bir sayıyı onaltılık sayıya dönüştürmek için, ikili sayıları ondalık ayırıcıdan başlayarak iki yönde 4 basamaklı (tetrad) gruplar halinde birleştirmeniz gerekir. Gerekirse, orijinal sayının soluna önemsiz sıfırlar ekleyin. Sayı kesirli bir kısım içeriyorsa, sağına tüm defterler dolana kadar önemsiz sıfırlar eklemeniz gerekir. Daha sonra her not defteri bir onaltılık basamakla değiştirilir.

Örnek: 1101110.11 2'yi onaltılık gösterime dönüştürün.

İkili sayıları sağdan sola tetradlar halinde birleştiririz. alırız

0110 1110.1100 2 = 6E, C 16.

Bir sayıyı onaltılıdan ikiliye dönüştürmek için, her onaltılık basamağı ikili kodda yazmanız gerekir.