SAYI SİSTEMLERİ 1. Sayı Sistemleri Sayı Sistemlerinde Rakamlar

Transkript

SAYI SİSTEMLERİ 1. Sayı Sistemleri Sayı Sistemlerinde Rakamlar
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
SAYI SİSTEMLERİ
1. Sayı Sistemleri
Sayı sistemleri; saymak, ölçmek gibi genel anlamda büyüklüklerin ifade edilmesi amacıyla
kullanılan sistemler olarak tanımlanmaktadır. Temel olarak 4 sayı sistemi mevcuttur:




Onlu (Decimal) Sayı Sistemi
İkili (Binary) Sayı Sistemi
Sekizli (Octal) Sayı Sistemi
Onaltılı (Hexadecimal) Sayı Sistemi
Genel olarak çoğu alanda onlu sayı sistemi kullanılmasına karşılık, sayısal elektronik ve
dolayısıyla mikroişlemcili/mikrodenetleyicili sistemlerde doğası gereği ikili ve onaltılı sayı
sistemleri kullanılmaktadır.
Büyüklüklerin ifade edilmesinde; belirli bir sayı sistemi tabanına göre rakamlardan oluşan sayılar
kullanılmaktadır. Aşağıda aynı sayının 2, 8, 10 ve 16 sayı sistemine göre ifade ediliş
görülmektedir:
(158)10 = (10011110)2 = (9E)16= (236)8
Burada;
Rakam: Sayının basamaklarının gösterilmesi amacıyla kullanılan sembollerdir. (0, 1, 2 vb.).
Sayı : Rakamların bir araya gelerek oluşturduğu büyüklüktür. (128, 9E v.b.).
Taban : Herhangi bir sayının, basamak değerlerini göstermek amacıyla kullanılan düzendir. (2, 8,
10 ve 16 ).
Sayı Sistemlerinde Rakamlar
Sayı Sistemi
2
8
10
16
Rakamlar
0, 1
0, 1, 2, 3, 4, 5, 6, 7
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
-1-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
0-15 arası sayıların sayı sistemlerinde ifade edilmesi:
10
(Decimal)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
(Binary)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
16
(Hexadecimal)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
8
(Octal)
00
01
02
03
04
05
06
07
10
11
12
13
14
15
16
17
2. Onlu Sayı Sistemi
3. İkili Sayı Sistemi
4. Onaltılı Sayı Sistemi
5. Sekizli Sayı Sistemi
6. Sayı Sistemlerinde Taban Dönüşümleri
- Onlu – İkili Dönüşümü
- İkili – Onlu Dönüşümü
- Onlu – Onaltılı Sayı Sistemi Dönüşümü
- Onaltılı – Onlu Sayı Sistemi Dönüşümü
- Onlu – Sekizli
- Sekizli – Onlu
- İkili – Onaltılı
- Onaltılı – İkili
7. Kesirli Sayıların Gösterilmesi
8. İşaretli Sayıların Gösterilmesi
9. Tümleyen Aritmetiği
-2-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
İşaretli ve İşaretsiz Sayı Tipleri
İşaretsiz sayı tipinde, sayıyı oluşturan bit değerlerinin hepsi büyüklüğü göstermede kullanılır. İşaretli sayı
tipinde ise En Önemli Bit (MSB - Most Significant Bit) değeri İşaret biti (Sign Bit) olarak kabul edilir. Bu bit
değerine göre sayının işareti belirlenir. Sayıyı oluşturan diğer bitler ise sayının büyüklüğünün
hesaplanmasında kullanılır.
MSB
LSB
Sign
Bit
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
MSB: Most Significant Bit (En Önemli Bit)
LSB: Least Significant Bit (En Önemsiz Bit)
MSB Bit (Sign Bit)
0
1
İşaret
Pozitif
Negatif
Sayı Büyüklüğü
Diğer bitler ile
Sayının ikili tümleyeni ile
Örnek 1 :
(Pascal/Delphi)
Var
x : Byte;
y : ShortInt;
// 8 bit işaretsiz
// 8 bit işaretli
(0 .. 255)
(-128 .. +127)
(C#)
byte x;
sbyte y;
// 8 bit işaretsiz (0 .. 255)
// 8 bit işaretli (-128 .. +127)
Yukarıda görüldüğü gibi X değişkeni işaretsiz olarak Byte veri tipi ile, Y değişkeni ise işaretli olarak
ShortInt (1 byte) veri tipi ile tanımlanmıştır.
Örneğin X ve Y değişkenlerinin adreslediği bellek gözlerinde (00001001) 2 sayısı mevcut olsun.
X’in değeri ;
X
MSB
128
27
7
0
64
26
6
0
32
25
5
0
16
24
4
0
8
23
3
1
4
22
2
0
2
21
1
0
LSB
1
20
0
1
X=0.27+ 0.26 + 0.25 + 0.24 +1.23 + 0.22 + 0.21 + 1.20
X= 0 + 0
+
0 + 0
+ 8 +
0 + 0
+ 1
X = 9 olur.
-3-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
Y’in değerinin bulunması için işaret bitine (MSB) bakılır.
Y
MSB
128
27
7
0
64
26
6
0
32
25
5
0
16
24
4
0
8
23
3
1
4
22
2
0
2
21
1
0
LSB
1
20
0
1
Sign Bit = 0 olduğundan sayı pozitiftir. Y’nin işareti ( + ) olur. Y’nin büyüklüğü ise diğer bitlerin değerleri
ile elde edilir. (İşaretsiz sayı büyüklüğünün hesabıyla ayınıdır).
Y’nin büyüklüğü = 0 . 2 6 + 0 . 2 5 + 0 . 2 4 + 1 . 2 3 + 0 . 2 2 + 0 . 2 1 + 1 . 2 0
Y’nin büyüklüğü =
0 + 0
+
0 + 0
+ 8 +
0 + 0
+
Y’nin büyüklüğü =
9 olur.
1
Y = (+) 9
Y = + 9 olarak bulunur.
Örnek 2 :
(Pascal/Delphi)
Var
x : Byte;
y : ShortInt;
// 8 bit işaretsiz
// 8 bit işaretli
(0 .. 255)
(-128 .. +127)
(C#)
byte x;
sbyte y;
// 8 bit işaretsiz (0 .. 255)
// 8 bit işaretli (-128 .. +127)
Yukarıda görüldüğü gibi X değişkeni işaretsiz olarak Byte veri tipi ile, Y değişkeni ise işaretli olarak
ShortInt (1 byte) veri tipi ile tanımlanmıştır.
Örneğin X ve Y değişkenlerinin adreslediği bellek gözlerinde (10001001) 2 sayısı mevcut olsun.
X’in değeri ;
X
MSB
128
27
7
1
64
26
6
0
32
25
5
0
16
24
4
0
8
23
3
1
4
22
2
0
2
21
1
0
LSB
1
20
0
1
X=1.27+ 0.26 + 0.25 + 0.24 +1.23 + 0.22 + 0.21 + 1.20
X = 128 + 0
+
0 + 0
+ 8 +
0 + 0
+ 1
X = 137 olur.
-4-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
Y’in değerinin bulunması için işaret bitine (MSB) bakılır.
Y
MSB
128
27
7
1
64
26
6
0
32
25
5
0
16
24
4
0
8
23
3
1
4
22
2
0
2
21
1
0
LSB
1
20
0
1
Sign Bit = 1 olduğundan sayı negatiftir. Y’nin işareti ( - ) olur. Y’nin büyüklüğü ise 2’li tümleyen ile
aşağıdaki gibi bulunur.
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
+1
1
1’li tümleyen
2’li tümleyen
Y büyüklüğü = 0 . 2 7 + 1 . 2 6 + 1 . 2 5 + 1 . 2 4 + 0 . 2 3 + 1 . 2 2 + 1 . 2 1 + 1 . 2 0
Y büyüklüğü =
0 + 64 +
32 +
16 +
0 +
4 +
2 + 1
Y büyüklüğü =
119
Y = (-) 119
Y = -119 olarak bulunur.
-5-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
STATUS REGISTER (Durum Kaydedici)
Status Register, bir mikroişlemci veya mikrodenetleyicide işletilen aritmetiksel veya mantıksal bir
komut sonrasında elde edilen sonucun içeriği hakkında bilgi vermek üzere kullanılır. Bu bilgiler
program akışı içerisinde şartlı işlemleri sağlamak için kullanılabilmektedir. Status Register’in her
biti flag (bayrak) olarak adlandırılır ve her biri ayrı bir anlam taşır. Status Register, tüm ALU
işlemlerinden sonra yeniden güncellenir ve hangi bayrakların etkileneceği uygulanan Komuta göre
değişmektedir.
Şekil. AVR Status Register – SREG (Atmega 16)
Bit
Sıra
No
Simge
Bit 0
C
Carry Flag
Elde Bayrağı
Bit 1
Z
Zero Flag
Sıfır Bayrağı
Bit 2
N
Negative Flag
Bit 3
V
Two’s Complement
Overflow Flag
Bit 4
S
Sign Bit
Bit 5
H
Half Carry Flag
Bit 6
T
Bit Copy Storage
Bit Copy komutları tarafından kullanılır.
Bit 7
I
Global Interrupt
Enable/Disable Flag
Genel Kesme Enable/Disable Bayrağı
Açıklama
ENG
TR
Negatif Bayrağı
MSB değerini alır.
2’li Komplement Taşma Bayrağı
İşaret Biti
Her zaman
’dir.
Yarı (1.Nibble) Elde Bayrağı
1. Nibble’dan 2. Nibble’a Elde durumu
BCD aritmetiğinde kullanılır.
İşlem Sonucu
Bit Durumu
0
1
Yok
Sıfır
Değil
Negatif
Değil
Var
Sıfır
Negatif
Yok
Var
Pozitif
Negatif
Yok
Var
---
---
Disable
Enable
-6-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
Örnek Uygulama 1
Bir mikrodenetleyicide (Atmega 16) (11011111)2 + (01100110)2 = ( ? ) 2 toplama işlemi yapıldığında SREG
- STATUS Register içeriği ne olur? İşlemi yaparak sonuçları tabloda gösteriniz.
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
1
1
0
1
1
1
1
1
+
1
Decimal
-33
0
1
1
0
0
1
1
0
102
0
1
0
0
0
1
0
1
69
SREG - STATUS Register – Flags (Bayraklar)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
I
T
H
S
V
N
Z
C
-
-
1
0
0
0
0
1
Örnek Uygulama 2
Bir mikrodenetleyicide (01000000)2 + (01000000)2 = ( ? )2 toplama işlemi yapıldığında SREG - STATUS
Register içeriği ne olur? İşlemi yaparak sonuçları tabloda gösteriniz.
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
0
1
0
0
0
0
0
0
+
Decimal
+64
0
1
0
0
0
0
0
0
+64
1
0
0
0
0
0
0
0
-128
???
SREG - STATUS Register – Flags (Bayraklar)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
I
T
H
S
V
N
Z
C
-
-
0
0
1
1
0
0
-7-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
Örnek Uygulama 3
Bir mikrodenetleyicide (11110000)2 + (10000000)2 = ( ? )2 toplama işlemi yapıldığında SREG - STATUS
Register içeriği ne olur? İşlemi yaparak sonuçları tabloda gösteriniz.
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
1
1
1
1
0
0
0
0
+
1
Decimal
-16
1
0
0
0
0
0
0
0
-128
0
1
1
1
0
0
0
0
+112
SREG - STATUS Register – Flags (Bayraklar)
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
I
T
H
S
V
N
Z
C
-
-
0
1
1
0
0
1
-8-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
1.2 NUMBERS, NUMBERS, NUMBERS...
DECIMAL SAYI SİSTEMİ
Onlu sayı sisteminde 0, 1, 2, .. 9 olmak üzere toplam 10 farklı rakam kullanılır.
BINARY SAYI SİSTEMİ
Binary sayı sisteminde 0 ve 1 olmak üzere toplam 10 farklı rakam kullanılır.
-9-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
HEXADECIMAL NUMBER SYSTEM
At the very beginning of computer development it was realized that people had many difficulties in handling binary
numbers. For this reason, a new number system, using 16 different symbols was established. It is called hexadecimal
number system and consists of the ten digits we are used to (0, 1, 2, 3,... 9) and six letters of alphabet A, B, C, D, E and
F.
BCD CODE
BCD code is a binary code for decimal numbers only (Binary-Coded Decimal). It is used to enable electronic circuits to
communicate either with peripherals using decimal number system or within ‘their own world’ using binary system. It
consists of 4-digit binary numbers which represent the first ten digits (0, 1, 2, 3 ... 8, 9). Even though four digits can give
in total of 16 possible combinations, the BCD code normally uses only the first ten.
NUMBER SYSTEM CONVERSION
BINARY TO DECIMAL NUMBER CONVERSION
HEXADECIMAL TO DECIMAL NUMBER CONVERSION
-10-
Sayı Sistemleri
Dr. Serkan DİŞLİTAŞ
HEXADECIMAL TO BINARY NUMBER CONVERSION
Kaynak : PIC Microcontrollers - Programming in C (www.mikroe.com)
-11-

Benzer belgeler