Integer Representasi

Integer Representation

  • Dalam sistem bilangan biner , semua bilangan dapat direpresentasikan dengan hanya menggunakan bilangan 0 dan 1, tanda minus, dan tanda titik.
Misalnya: -1101.01012 = -11.312510
  • Namun untuk keperluan penyimpanan dan pengolahan komputer, kita tidak perlu menggunakan tanda minus dan titik.
  • Hanya bilangan biner (0 dan 1) yang dapat merepresentasikan bilangan.
  • Bila kita hanya memakai integer non-negatif, maka representasinya akan lebuh mudah.
  • Sebuah word 8-bit dapat digunakan untuk merepresentasikan bilangan 0 hingga 255. Misalnya:
00000000= 0
00000001= 1
00101001 = 41
  10000000  = 128
   11111111= 225
  • Umumnya bila sebuah rangkaian n-bit bilangan biner an-1an-2…a1a0 akan diinterpretasikan sebagai unsigned integer A.

Representasi Nilai Tanda
  • Penggunaan unsigned integer tidak cukup untuk merepresentasikan bilangan integer negatif dan juga bilangan positif integer.
  • Karena itu terdapat beberapa konvesi lainnya yang dapat kita gunakan.
  • Konvesi-konvesi lainnya meliputi perlakuan terhadap bit yang paling berarti (paling kiri) di dalam word bit tanda.
  • Apabila bit paling kiri sama dengan 0 suatu bilangan adalah positif , sedangkan bila bit yang paling kiri sama dengan 1 bilangan bernilai negatif.
  • Bentuk yang paling sederhana representasi yang memakai bit tanda representasi nilai tanda. Pada sebuah word n bit, n – 1 bit yang paling kanan menampung  nilai integer. Misalnya:
+ 18 = 00010010
-  18 = 10010010 (sign-magnitude/nilai-tanda)
  • Terdapat beberapa kekurangan pada representasi nilai-tanda penambahan dan pengurangan memerlukan pertimbangan baik tanda bilangan ataupun nilai relatifnya agar dapat berjalan pada operasi yang diperlukan.
  • Kekurangannya lainnya terdapat dua representasi bilangan 0:
+ 010 = 00000000
-  010 = 10000000 (sign-magnitude)
REPRESENTASI KOMPLEMEN DUA
  • Representasi komplemen dua ( two’s complement representation)  mengatasi dua buah kekurangan yang terdapat pada representasi nilai- tanda.
  • Penambahan dan pengurangan   nilai-tanda (sign-magnitude) tidak mencukupi dan terdapat dua buah representasi bilangan nol.
  • Representasi komplemen dua menggunakan bit yang paling berarti sebagai bit tanda  memudahkannya untuk mengetahui apakah sebuah integer bernilai positif atau negatif.
  • Representasi ini berbeda dengan representasi nilai-tanda dengan cara menginterpretasikan bit-bit lainnya.
  • Representasi komplemen dua akan lebih mudah dimengerti dengan mendefinisikannya dalam bentuk jumlah bobot bit  seperti telah kita lakukan diatas pada representasi unsigned-magnitude dan sign-magnitude.
  • Bilangan nol akan diidentifikasikan sebagai positif,  memiliki tanda bit 0 dan nilai keseluruhan 0.
  • Kita dapat melihat bahwa range integer positif yang dapat direpresentasikan mulai 0 (seluruh magnitude bit-nya sama dengan 0) hingga 2n-1-1 (seluruh magnitude bit-nya 1).   bilangan yang lebih besar akan memerlukan bit yang lebih banyak.
  • Sekarang  bilangan negatif A, bit tanda an-1, sama dengan 1. n-1 bit sisanya dapat mengambil salah satu dari 2n-1 nilai.
  • Karena itu, range integer negatif yang dapat direpresentasikan  mulai –1 hingga -2n-1.
  • Hasilnya  assignment yang mudah bagi nilai  untuk membiarkan bit-bit an-1 an-2…a:a0 akan sama dengan bilangan positif 2n-1 –A.
KONVERSI ANTARA PANJANG BIT YANG BERLAINAN
  • Kadang-kadang kita perlu mengambil sebuah integer n bit dan menyimpannya di dalam m bit, dengan m > n.
  • Pada notasi sign-magnitude  mudah dilaksanakan: cukup memindahkan bit tanda ke posisi terkiri yang baru dan mengisinya dengan nol. Misalnya:
+18 =                        00010010    (sign-magnitude, 8 bit)
+18 =         0000000000010010    (sign-magtitude, 16 bit)
-18 =                          10010010    (sign-magnitude, 8 bit)
-18 =          1000000000010010    (sign-magtitude, 16 bit)
  • Prosedur di atas tidak berlaku bagi integer negatif komplemen dua. Dengan memakai contoh yang sama:
+18 =                       00010010    (komplemen dua, 8 bit)
+18 =        0000000000010010    (komplemen dua, 16 bit)
-18 =                        10010010    (komplemen dua, 8 bit)
-65.518 =  1000000000010010     (komplemen dua, 16 bit)
  • Aturan integer komplemen dua adalah untuk memindahkan bit tanda ke posisi terkiri yang baru dan mengisinya dengan salinan-salinan bit tanda.
  • Bilangan positif diisi dengan 0 dan  bilangan negatif isi dengan 1
-18 =                          10010010    (komplemen dua, 8 bit)
-18 =          1111111100010010    (komplemen dua, 16 bit)

Aritmetika Integer
Bagian ini akan membahas fungsi-fungsi aritmatik bilangan dalam representasi komplemen dua.
A. Negasi
Pada notasi komplemen dua, pengurangan sebuah bilangan integer dapat dibentuk dengan mengunakan aturan berikut:
Anggaplah komplemen boolean seluruh bit bilangan integer (termasuk bittanda). Perlakukan hasilnya sebagai sebuah unsigned binary integer, tambahkan1. misalnya:18=00010010 (komplemen dua).
b.  Representasi Integer Positif,negatif,dan bilangan 0.
  • Bila sebuah bilangan integer positif dan negatif yang sama direpresentasikan (sign – magnitude),maka harus ada representasi bilangan positif dan negatif yang tidak sama.
  • Bila hanya terdapat sebuah representasi bilangan 0 (komplemen dua),maka harus ada representasi bilangan positif dan negatif yang tidak sama.
  • Pada kasus komplemen dua,terdapat representasi bilangan n-bit untuk -2n,tapi tidak terdapat untuk 2n.

Kita perlu menggunakan representasi biner untuk setiap bagian dari data. Komputer beroperasi pada nilai-nilai biner (sebagai akibat dari yang dibangun dari transistor).
Ada 3 jenis data yang kita ingin mewakili:
  1. bilangan bulat
  2. karakter
  3. floating point nilai
Representasi Integer
Ada representasi biner yang berbeda untuk bilangan bulat. Kemungkinan kualitas:
  1. bilangan positif hanya
  2. bilangan positif dan negatif
  3. kemudahan pembacaan manusia
  4. kecepatan operasi komputer
Meskipun ada banyak representasi, dan semua telah digunakan di berbagai kali karena berbagai alasan, yang dikelilingi oleh * adalah representasi yang akan kita gunakan secara ekstensif.
  1. * Unsigned *
  2. tanda besarnya
  3. melengkapi satu
  4. * Melengkapi dua itu *
  5. bias (tidak dikenal)
  6. BCD (Binary Coded Decimal), digunakan terutama oleh aplikasi bisnis pada tahun 1960 dan 70-an.
Hampir semua komputer modern beroperasi berdasarkan representasi komplemen 2 ini. Mengapa?
  1. perangkat keras untuk melakukan operasi yang paling umum adalah lebih cepat (operasi yang paling umum adalah tambahan)
  2. hardware lebih sederhana (dan karena itu lebih cepat)
Apakah Anda perhatikan bahwa kedua alasan untuk menggunakan representasi komplemen 2 adalah sama? Hampir selalu, ketika membahas mengapa sesuatu dilakukan dengan cara itu dilakukan, jawabannya adalah sama: "karena lebih cepat."


Prasyarat Bahan dari 252 (Mulai Disini)
Bilangan bulat Unsigned
pengkodean biner standar yang Anda sudah tahu
hanya 0 dan nilai-nilai positif
Kisaran: 0 sampai (2 ^ n) - 1, untuk n bit
contoh:
 4 bit, nilai 0-15
 n = 4, 2 ^ 4 -1 adalah 15

            hex desimal biner hex desimal biner
            0000 0 0 1000 8 8
            0001 1 1 1001 9 9
            0010 2 2 1010 10 a
            0011 3 3 1011 11 b
            0100 4 4 1100 12 c
            0101 5 5 1101 13 d
            0110 6 6 1110 14 e
            0111 7 7 1111 15 f
Prasyarat Bahan dari 252 (Berakhir Disini)


Satu Komplemen Integer
Tidak tercakup dalam 354, tetapi Anda harus tahu hal itu, karena membuat pemahaman Two Pelengkap mudah!
Sejarah penting, dan kita menggunakan representasi ini untuk mendapatkan 2 ini bilangan bulat pelengkap.
Sekarang, tidak ada yang membangun mesin yang berdasarkan atas 1 's comp. bilangan bulat. Di masa lalu, komputer awal dibangun oleh Semour Cray (sementara pada CDC) didasarkan atas 1 's comp. bilangan bulat.
Bilangan bulat positif menggunakan representasi yang sama dengan unsigned.
00000 adalah 0
00.111 adalah 7, dll
Negasi (menemukan invers aditif) dilakukan dengan mengambil pelengkap bitwise dari representasi. Operasi ini juga dikenal sebagai mengambil melengkapi seseorang.
PELENGKAP. Invert. TIDAK. FLIP. Meniadakan.
Ini adalah operasi logis dilakukan pada satu bit.
Komplemen dari 1 adalah 0.
Komplemen dari 0 adalah 1.
Contoh:
         Tentukan representasi dari -1 dalam 1 komplemen
       
         representasi untuk +1: 00001
         melengkapi setiap bit: 11110

               Itu adalah -1.

               Jangan menambah atau menghapus bit.
Contoh:
 Apa nilai desimal diwakili oleh 11100?

 Ini harus menjadi angka negatif.

 Untuk mengetahui, mencari invers aditif!

 00.011 adalah +3 karena melihat, jadi 11100 harus -3
Hal untuk melihat:
  1. setiap angka negatif akan memiliki 1 dalam MSB
  2. ada 2 representasi untuk 0: 00000 dan 11111


Prasyarat Bahan dari 252 (Mulai Disini)
Dua dunia bilangan bulat Pelengkap
Sebuah variasi atas 1 komplemen yang tidak memiliki dua representasi untuk 0. Hal ini membuat perangkat keras yang melakukan aritmatika (penambahan, benar-benar) lebih cepat daripada untuk representasi lain.
contoh 3-bit:
   pola bit: 100 101 110 111 000 001 010 011

   1 's comp: -3 -2 -1 0 0 1 2 3

   2 ini comp .: -4 -3 -2 -1 0 1 2 3

Nilai-nilai negatif semua "meluncur" ke bawah per satu, menghilangkan representasi tambahan nol.
Cara mendapatkan integer di comp 2 ini. representasi:
  • nilai-nilai positif adalah sama seperti untuk tanda mag. dan 1 comp.
    mereka akan memiliki 0 dalam MSB (tapi itu TIDAK sedikit tanda!)
  • positif: hanya menuliskan nilai seperti sebelumnya
  • negatif:
·                  menggunakan nilai positif 00101 (+5)
·          
·                  mengambil 1 itu comp.  11.010 (-5 in 1 ini comp)
·                  tambahkan 1 + 1
·                                          ------
·                                           11.011 (-5 di comp 2 an)
·          
   
Untuk mendapatkan invers aditif dari 2 komplemen integer,
  1. mengambil melengkapi seseorang
  2. tambahkan 1
Operasi 2-langkah ini yang menghasilkan menemukan kebalikan aditif dari representasi melengkapi dua itu juga dikenal sebagai mengambil melengkapi dua itu.
   Untuk menambahkan 1 tanpa benar-benar tahu bagaimana menambahkan:
     mulai dari LSB, untuk setiap bit (kanan ke kiri bekerja)
       sementara sedikit adalah 1, mengubahnya ke 0.
       ketika 0 ditemui, mengubahnya ke 1 dan berhenti.
       Semua bit yang tersisa lainnya adalah sama seperti sebelumnya.
Contoh:
Apa nilai desimal yang dua komplemen 110.011 mewakili?
Ini harus menjadi angka negatif, karena bit yang paling signifikan (MSB) adalah 1. Oleh karena itu, mencari invers aditif:

              110.011 (comp 2 ini.?)

              001.100 (setelah mengambil 1 komplemen)
                + 1
              ------
              001.101 (2 itu comp. +13)

              Oleh karena itu, terbalik aditif nya (110011) harus -13.
Sedikit di Menambahkan
Kita akan melihat bagaimana untuk benar-benar melakukan hal ini nanti, tapi inilah gambaran singkat.

         membawa dalam ab sum melaksanakan
            0 0 0 0 0
            0 0 1 1 0
            0 1 0 1 0
            0 1 1 0 1
            1 0 0 1 0
            1 0 1 0 1
            1 1 0 0 1
            1 1 1 1 1

        a 0011
       + B 0001
       - -----
      sum 0100

Ini benar-benar seperti yang kita lakukan untuk desimal!
0 + 0 = 0
1 + 0 = 1
1 + 1 = 2 yaitu 10 dalam biner, sum adalah 0 dan membawa 1.
1 + 1 + 1 = 3 sum adalah 1, dan membawa 1.
Prasyarat Bahan dari 252 (Berakhir Disini)


Sebuah Diagram Nyaman
Diagram ini adalah salah satu standar yang digunakan untuk menunjukkan perbedaan antara pola bit (representasi), dan nilai-nilai yang diwakili oleh pola bit. Versi roda nomor memberikan segala kemungkinan dari 4-bit representasi. Untuk setiap representasi, juga memberikan (dalam lingkaran luar) nilai desimal diwakili oleh pola bit. Perhatikan bahwa dua positif itu nilai pelengkap yang persis sama dengan nilai-nilai unsigned. Ini adalah pola bit yang memiliki 1 dalam bit posisi yang paling signifikan di mana nilai-nilai diwakili berbeda.
http://pages.cs.wisc.edu/%7Ecs354-1/onyourown/numberwheel.gif


Prasyarat Bahan dari 252 (Mulai Disini)
Masuk Ekstensi
Bagaimana mengubah integer dengan sejumlah kecil bit menjadi integer yang sama (representasi yang sama) dengan jumlah yang lebih besar dari bit.
Hal ini biasanya dilakukan pada beberapa arsitektur, sehingga yang terbaik adalah untuk pergi lebih dari itu.
Dengan representasi:
  • unsigned
·           xxxxx menjadi 000xxxxx
Salin integer asli ke LSB, dan menempatkan 0 di tempat lainnya
  • 1 dan melengkapi 2 ini. Disebut ekstensi tanda.
    Salin integer asli ke LSB, mengambil MSB integer asli dan mereplikasi di tempat lain.
Contoh:
                  0010101 -> 000 0010101
                        ^ ^^^
                 11110000 -> 11111111 11110000
                        ^ ^^^^^^^^


Melimpah
Kadang-kadang nilai tidak dapat diwakili dalam jumlah terbatas bit diperbolehkan. Contoh:
     unsigned, 3 bit: 8 akan membutuhkan setidaknya 4 bit (1000)
     . 2 di comp, 4 bit: 8 akan membutuhkan setidaknya 5 bit (01000)
Ketika nilai tidak dapat diwakili dalam jumlah bit diperkenankan, kita mengatakan bahwa melimpah telah terjadi. Overflow terjadi ketika melakukan operasi aritmatika.
       Contoh: 3-bit representasi unsigned

               011 (3)
             + 110 (6)
             ---------
                ?  (9) itu akan membutuhkan 4 bit (1001) untuk mewakili
                          nilai 9 di unsigned rep.

Ini merupakan masalah, karena perangkat keras komputer diimplementasikan dengan presisi tetap. Komputer tidak dapat memanfaatkan bit tambahan untuk menyelesaikan operasi.

Komentar

Postingan populer dari blog ini

Interrupt driven I/O

List Linier (Linked list) Dan Variasinya_Struktur Data

Menghitung Jarak Jatuh Peluru (C++)