STEI Institut Teknologi Bandung

dokumen-dokumen yang mirip
5. Floating Point Arithmetic

PERTEMUAN MINGGU KE-3 REPRESENTASI DATA

Arsitektur dan Organisasi

Standard IEEE 754 & Big Endian Litle Endian

9.3. ARITMATIKA INTEGER

Bab 3. Aritmetika Komputer

Aritmatika Komputer. Bab 9 4/29/2014

Bab 10 Penyajian Data Integer dan Bilangan Floating Point 10.1 Pendahuluan

09/01/2018. Prio Handoko, S. Kom., M.T.I.

ARSITEKTUR DAN ORGANISASI KOMPUTER

PEMECAHAN MASALAH DENGAN C 32 BIT FLOATING POINT BINARY CONVERTER

DASAR KOMPUTER REPRESENTASI DATA

REPRESENTASI DATA. Arsitektur Komputer

Bab 5. MA2151 Simulasi dan Komputasi Matematika

Kekeliruan Dalam Komputasi Saintifik

Representasi Bilangan Digital (Bagian 2)

Fakultas Teknologi Industri Universitas Gunadarma 2013

Representasi Bilangan dan Operasi Aritmatika

SISTEM BILANGAN, OPERASI ARITMATIKA DAN PENGKODEAN

REPRESENTASI dan ALUR PEMROSESAN DATA

Representasi Bilangan dan Operasi Aritmatika

2.1 Desimal. Contoh: Bilangan 357.

1. Integer Interger adalah data numerik yang tidak mengandung pecahan, dan disajikan dalam memori komputer sebagai angka bulat. Mengacu pada obyek

ARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD April 2018

Pertemuan Ke-6 ARITMATIKA KOMPUTER

BAB 1 PENGANTAR SISTEM KOMPUTER

BAB V b SISTEM PENGOLAHAN DATA KOMPUTER (Representasi Data) "Pengantar Teknologi Informasi" 1

Arsitektur & Organisasi Komputer. Aritmatika Komputer. Pertemuan I I

KOMPETENSI DASAR : MATERI POKOK : Sistem Bilangan URAIAN MATERI 1. Representasi Data

KESALAHAN DAN KEAKURATAN

Representasi Bilangan dan Operasi Aritmatika

Minggu 11. MA2151 Simulasi dan Komputasi Matematika

Arsitektur dan Organisasi

Basic Arithmetic Computing. Team Dosen Telkom University 2016

DCH1B3 Konfigurasi Perangkat Keras Komputer

Sistem Digital (410206)

Pertemuan 7. Tipe Data Sederhana

CSG2F3 Sistem dan Logika Digital (SLD) REPRESENTASI DATA. Tim Dosen SLD KK Telematika FIF Telkom University

CNH2B4 / KOMPUTASI NUMERIK

Dr. novrina

Pertemuan ke 9 Aritmatika Komputer. Computer Organization Eko Budi Setiawan

Arithmatika Komputer. Pertemuan - 2

Representasi Bilangan dan Operasi Aritmatika

A. SISTEM DESIMAL DAN BINER

BAB III DAN DASAR-DASAR MATEMATIKA. FTI-Universitas Yarsi

Brigida Arie Minartiningtyas, M.Kom

SISTEM BILANGAN REPRESENTASI DATA

Komputer menggunakan dan memanipulasi data untuk perhitungan aritmatik, pemrosesan data dan operasi logik. Data adalah bilangan biner dan informasi

Pokok Pokok Bahasan :

SISTEM BILANGAN DAN KONVERSI BILANGAN. By : Gerson Feoh, S.Kom

Representasi Data Digital (Bagian 1)

Lecture Notes Algoritma dan Pemrograman

Dalam konvensi tersebut dijumpai bahwa suatu bilangan yang tidak disertai indeks berarti bilangan tersebut dinyatakan dalam desimal atau basis-10.

DATA KOMPUTASI & SISTEM BILANGAN

DCH1B3 Konfigurasi Perangkat Keras Komputer

BAB II SISTEM BILANGAN DAN KODE BILANGAN

DATA PADA BAHASA C TIPE DATA

Operator dan Assignment

Basis Bilangan. Disusun oleh: Tim dosen SLD Diedit ulang oleh: Endro Ariyanto. Prodi S1 Teknik Informatika Fakultas Informatika Universitas Telkom

OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

EC Sistem Komputer. Bagian 2 Representasi dan Manipulasi Data dalam Bit dan Byte

Pemrograman Berbasis Objek Operator dan Assignment

Arsitektur Komputer. Pertemuan ke-2 - Aritmatika Komputer >>> Sistem bilangan & Format Data - Perkembangan Perangkat Keras Komputer

Arithmatika Komputer. Pertemuan 3

BAB I SISTEM BILANGAN OLEH : GANTI DEPARI JPTE FPTK UPI BANDUNG

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

GALAT DALAM KOMPUTASI NUMERIK

Catatan Kuliah Analisis Numerik Pertemuan 1 : 10 Februari 2015 Sri Istiyarti Uswatun Chasanah G Oleh : Dr.Ir.Sri Nurdiati, M.

Pertemuan 04. Pemrograman Dasar 2012

Bilangan Bertanda (Sign Number)

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

MODUL 1 SISTEM BILANGAN

Arsitektur dan Organisasi Komputer

3. Elemen Dasar C++ S. Indriani S. L., M.T L.,

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

Operator dan Assignment. Pertemuan 3 Pemrograman Berbasis Obyek

Tipe Data dan Operator dalam Pemrograman

Sistem Bilangan dan Pengkodean -2-

Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom

Sistem-Sistem Bilangan Sistem-Sistem Bilangan secara matematis: Contoh-2: desimal: biner (radiks=2, digit={0, 1}) Bilangan. Nilai

METODE NUMERIK. MODUL 1 Galat dalam Komputasi Numerik 1. Zuhair Jurusan Teknik Informatika Universitas Mercu Buana Jakarta 2008 年 09 月 21 日 ( 日 )

DeretTaylor dananalisisgalat

MODUL 1 SISTEM BILANGAN

Representasi Data. M. Subchan M

OPERATOR BAHASA C. Obyektif : 4. Mengetahui macam-macam operator dalam Bahasa C. 5. Mengetahui dan dapat menggunakan format pada tiap tipe data..

TIPE DATA DAN OPERASI I/O

METODA NUMERIK (3 SKS)

FORMAT BILANGAN DALAM MIKROPROSESOR

ARITHMETIC CODING. Arithmetic Coding

SISTEM BILANGAN I. DEFINISI. II. Teori Bilangan

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

MAKALAH. Mata Kuliah. Arsitektur dan Organisasi Komputer

Pemrograman Berorientasi Obyek. Operator & Assignment

ARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD Maret 2018

METODE NUMERIK 2- PENDEKATAN DAN KESALAHAN. Buku : Metode Numerik untuk Teknik Penulis : Steven C Chapra & Raymond P.Canale

Dasar Pemrograman Java

Sistem Bilangan. Rudi Susanto

Aplikasi Aljabar Lanjar pada Metode Numerik

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Transkripsi:

Floating Point STEI Institut Teknologi Bandung

Pembahasan Bilangan pecahan biner Representasi floating point standar IEEE 754 Pengkodean floating point Normalized Denormalized Nilai khusus Rounding Operasi floating point Floating point pada C Floating Point 4-2

Bilangan Pecahan Biner 2 i 2 i 1 4 binary point 2 1 b i b i 1 b 2 b 1 b 0. b 1 b 2 b 3 b j Representasi bilangan : b = i k = j b k 2 k Bit sebelah kiri binary point merepresentasikan bobot 2 k Bit sebelah kanan binary 1/2 point merepresentasikan 1/4 bobot 2 -k 1/8 2 j Contoh : 101.11 2 merepresentasikan bilangan 1 x 2 2 + 0 x 2 1 + 1 x 2 0 + 1 x 2-1 + 1 x 2-2 = 4 + 0 + 1 + ½ + ¼ = 5¾ Floating Point 4-3

Bilangan Pecahan Biner Menggeser binary point ke kiri membagi dengan 2 sama dengan shift kanan contoh : 101.11 2 = 5 ¾ 10.111 2 = 2 + 0 + ½ + ¼ + 1/8 = 2 7/8 Menggeser binary point ke kanan mengalikan dengan 2 sama dengan shift kiri contoh : 1011.1 2 = 8 + 0 + 2 + 1 + ½ = 11½ Bilangan mendekati 1 memiliki bentuk 0.111111 2 Contoh : 63/64 = 1/2+1/4+1/8+1/16+1/32+1/64 = 0.111111 2 Direpresentasikan dengan notasi 1.0 ε Floating Point 4-4

Keterbatasan Pecahan Biner Memiliki panjang kode terbatas Tidak dapat merepresentasikan bilangan 1/3 secara eksak Dapat mereprentasikan secara eksak bila berbentuk x x 2 y Bilangan lain harus mengulangi representasi bit berkali-kali k Nilai Representasi 1/3 0.0101010101[01] 2 1/5 0.001100110011[0011] 2 1/10 0.0001100110011[0011] 2 Akurasi dapat dinaikkan dengan menambah bit, tetapi tetap saja tidak dapat merepresentasikan secara eksak Floating Point 4-5

Bilangan Floating Point Merupakan aproksimasi dari bilangan real Merepresentasikan bilangan real dalam bentuk V = x x 2 y Tidak selalu memberikan hasil eksak, dapat terjadi pembulatan Digunakan dalam melakukan komputasi : bilangan sangat besar ( V» 0), dan bilangan sangat dekat dengan nol ( V «1) Pecahan biner tidak efisien dalam mengkodekan bilangan bernilai besar Contoh : 5 x 2 100 tersusun atas pola bit 101 diikuti 100 buah nol Floating Point 4-6

Floating Point Standar IEEE Ide Bentuk V = x x 2 y ingin direpresentasikan dengan hanya memberikan nilai x dan y-nya saja Representasi floating point standar IEEE 754 V = ( 1) s x M x 2 E Bit tanda s menentukan apakah bilangan negatif (s=1) atau positif (s=0) Signifikan M adalah bilangan pecahan, berkisar antara 1 dan 2 ε atau antara 0 dan 1 ε Eksponen E adalah bobot nilai bilangan Standar IEEE 754 Ditentukan tahun 1985 Bentuk standar aritmetika floating point Sebelumnya, terdapat berbagai macam format Didukung oleh seluruh CPU Floating Point 4-7

Pengkodean Floating Point Representasi floating point IEEE V = ( 1) s x M x 2 E Kode biner floating point s exp frac 1 bit k bit n bit s (sign)( ) sepanjang satu bit mengkodekan bit tanda s exp (exponent) sepanjang k bit mengkodekan eksponen E frac (fraction) sepanjang n bit mengkodekan signifikan M Ukuran (tipe data float pada C) Single precision : s=1 bit, exp=8 bit, frac=23 bit total 32 bit Double precision : s=1 bit, exp=11 bit, frac=52 bit total 64 bit Floating Point 4-8

3 Kasus Kode Floating Point Berdasarkan pola bit exp, pengkodean floating point dibagi menjadi tiga kasus : Nilai normalized Kasus paling umum Bila bit-bit exp tidak semua nol (exp 000 0) atau tidak semua satu (exp 111 1) Nilai denormalized Bila bit-bit exp semuanya nol (exp = 000 0) Nilai khusus Bila bit-bit exp semuanya satu (exp = 111 1) Floating Point 4-9

Nilai Normalized Berlaku untuk kondisi exp 000 0 dan exp 111 1 Eksponen E diinterpretasikan dalam bentuk bias E = e bias e : nilai unsigned yang dikonversikan langsung dari exp bias : nilai bias = 2 k-1 1, dimana k adalah banyaknya bit exp single precision : bias = 127, e = 1 s/d 254, E = -126 s/d 127 double precision : bias = 1023, e = 1 s/d 2046, E = -1022 s/d 1023) Signifikan M adalah bilangan pecahan M = 1 + f pecahan f = 0.xxx xx 2, dimana x adalah bit-bit pada frac M berkisar antara 1.0 (frac= 000 0) s/d 2.0 ε (frac = 111 1 ) s exp frac 1 bit k bit n bit Floating Point 4-10

Nilai Denormalized Berlaku untuk kondisi exp = 000 0 Nilai kode eksponen E = 1 bias bias = 2 k-1 1, dimana k adalah banyaknya bit exp signifikan M = f pecahan f = 0.xxx x 2, dimana x adalah bit-bit pada frac Kasus denormalized exp = 000 0, 0 frac = 000 00 Merepresentasikan nilai 0 Terdapat perbedaan antara nilai +0 and 0, berdasarkan nilai bit s exp = 000 0, frac 000 0 Bilangan yang sangat dekat dengan 0.0 0 Sifat gradual underflow, semakin kecil semakin presisi s exp frac 1 bit k bit n bit Floating Point 4-11

Nilai Khusus Berlaku untuk kondisi exp = 111 1 Kasus : exp = 111 1, frac = 000 0 Merepresentasikan nilai (tak hingga/infinity) positif + bl bila s=0 0dan negatif bl bila s=1 Hasil operasi yang mengalami overflow Hasil kali dua bilangan sangat besar Pembagian dengan nol (1.0/0.0 0 = 1.0/ 0.0 10/ 00=+ +, 10/ 1.0/ 0.0 00= ) exp = 111 1, frac 000 0 Disebut Not-a-Number (NaN) Merepresentasikan situasi dimana tidak ada nilai numeriknya Contoh : sqrt( 1), s exp frac 1 bit k bit n bit Floating Point 4-12

3 Kasus Kode Floating Point Ringkasan pengkodean bilangan real floating point : 1. Normalized 2. Denormalized 3. Nilai khusus Tak hingga (infinity) Not a Number -Normalized -Denorm +Denorm +Normalized + NaN 0 +0 NaN Floating Point 4-13

Distribusi Nilai Misalkan : floating point 6 bit, format menyerupai IEEE sign s = 1bit,eksponenexp= exp 3 bit, pecahan frac = 2bit Seluruh range nilai : -15-10 -5 0 5 10 15 Nilai antara -1.0 hingga +1.0 : -1-0,5 0 0,5 1-15 -10-5 5 10 15 Denormalized Normalized Infinity Perhatikan : distribusi semakin padat ketika mendekati nol Floating Point 4-14

Contoh Kode Floating Point Diberikan representasi floating point 8-bit (tiny) Satu bit tanda s terletak di most significant bit Empat bit berikutnya adalah eksponen exp Tiga bit terakhir adalah frac 1/4 7 6 3 2 s exp frac 0 Bentuk menyerupai format IEEE Terdapat kasus normalized, denormalized Terdapat representasi untuk nol, tak hingga dan NaN N Representasi nilai dihitung : V = ( 1) s x M x 2 E dimana M diturunkankan dari frac dan E diturunkan dari exp Floating Point 4-15

Contoh Kode Floating Point exp e E 2 E kasus 2/4 0000 0-6 1/64 denormalized 0001 1-6 1/64 normalized 0010 2-5 1/32 0011 3-4 1/16 0100 4-3 1/8 0101 5-2 1/4 Perhitungan nilai E 0110 6-1 1/2 denormalized : E = 1 - bias 0111 7 0 1 normalized : E = e -bias 1000 8 +1 2 1001 9 +2 4 1010 10 +3 8 1011 11 +4 16 1100 12 +5 32 1101 13 +6 64 1110 14 +7 128 normalized 1111 15 - - inf, NaN bias = 2 k-1 1 = 2 4-1 1 = 7 Floating Point 4-16

Contoh Kode Floating Point exp frac f M kasus 3/4 0000 000 0 0 0000 001 1/8 1/8 0000 010 2/8 2/8 0000 110 6/8 6/8 0000 111 7/8 7/8 0001 000 0 8/8 0001 001 1/8 9/8 0110 111 7/8 15/8 0111 000 0 8/8 0111 001 1/8 9/8 1110 110 6/8 14/8 1110 111 7/8 15/8 denormalized normalized 1111 000 - - tak hingga Perhitungan nilai M denormalized : M = f normalized : M = 1 + f f = 0.xxx 2, x adalah bit-bit frac Floating Point 4-17

Contoh Kode Floating Point s exp frac Perhitungan nilai V = ( 1) s x M x 2 E 4/4 0 0000 000 0 0 0000 001 1/8*1/64 = 1/512 0 0000 010 2/8*1/64 = 2/512 0 0000 110 6/8*1/64 = 6/512 0 0000 111 7/8*1/64 = 7/512 0 0001 000 8/8*1/64 = 8/512 0 0001 001 9/8*1/64 = 9/512 0 0110 111 15/8*1/2 = 15/16 0 0111 000 8/8*1 = 1 0 0111 001 9/8*1 = 9/8 0 1110 110 14/8*128 = 224 0 1110 111 15/8*128 = 240 0 1111 000 + tak hingga bilangan terdekat ke nol bilangan denormalized terbesar Bilangan normalized terkecil terdekat ke 1 (dr bawah) terdekat ke 1 (dari atas) bilangan normalized terbesar Floating Point 4-18

Nilai Single Precision (float) Single precision : s=1 bit, exp=8 bit, frac=23 bit total 32 bit Deskripsi i exp frac Nilai i Numerik Zero 00 00 00 00 0.0 Denorm pos terkecil 00 00 00 01 2 23 X 2 126 1.4 X 10 45 Denorm terbesar 00 00 11 11 (1.0 ε) X 2 126 1.2 X 10 38 Norm pos terkecil 00 01 00 00 1.0 X 2 126 Satu 01 11 00 00 1.0 12X10 1.2 10 38 Normalized terbesar 11 1010 11 11 (2.0 ε) )X2 127 3.4 X 10 38 Floating Point 4-19

Integer ke Floating Point Konversi integer ke format floating point single precision 12345 10 = 0x3039 = 11000000111001 2 = 1.1000000111001 2 X 2 13 normalisasi bilangan dengan shift 13 posisi ke kanan binary point Konstruksi bagian frac (23 bit) ambil signifikan M = 1.1000000111001 2 frac = 10000001110010000000000 2 frac diperoleh dengan membuang bit 1 di depan dan menambah 10 buah nol Konstruksi bagian exp (8 bit) bias = 127; E = 13; e = E + bias = 140; diperoleh exp = 10001100 2 Reprensentasi floating point : 12345.0 = 0x4640E400 Heksa 4 6 4 0 E 4 0 0 Biner 0100 0110 0100 0000 1110 0100 0000 0000 1 bit tanda 8 bit exp 23 bit frac Floating Point 4-20

Operasi Floating Point Konsep operasi floating point 1. Hitung hasil eksak 2. Cocokan hasil dengan tingkat kepresisian yang diinginkan Dapat terjadi overflow jika eksponen terlalu besar Dapat terjadi pembulatan agar cocok dengan nilai frac Metoda pembulatan (rounding) 140 1.40 160 1.60 150 1.50 250 2.50 1.50 Zero 1 1 1 2 1 Round down (- ) 1 1 1 2 2 Round up (+ ) 2 2 2 3 1 Nearest Even (default) 1 2 2 2 2 Catatan : zero = pembulatan ke arah nol; round down = pembulatan ke bawah; round up = pembulatan ke atas; nearest even = pembulatan terdekat Floating Point 4-21

Pembulatan Nearest Even Mode pembulatan standar (default)( ) Pembulatan ke nilai terdekat Jika bilangan berada tepat ditengah-tengah antara dua nilai i yang mungkin bulatkan sehingga nilai i digit it terkecil menjadi genap Contoh : pembulatan ke per seratus terdekat 1.2349999 1.23 (kurang dari setengah) 1.2350001 1.24 (lebih besar dari setengah) 1.2350000 1.24 (nilai tengah, bulatkan ke atas) 1.2450000 1.24 (nilai tengah, bulatkan ke bawah) Floating Point 4-22

Pembulatan Bilangan Biner Bilangan pecahan biner Bernilai i genap jika least significant nt bit = 0 Contoh : Pembulatan ke 1/4 terdekat (2 bit di kanan binary point) Nilai Biner Pembulatan Hasil Nilai akhir 2 3/32 10.00011 2 < nilai tengah, bulat terdekat 10.00 2 2 2 3/16 10.00110 2 > nilai tengah, bulat terdekat 10.01 2 2 1/4 2 7/8 10.11100 2 nilai tengah, bulat ke genap 11.00 2 3 2 5/8 10.10100 2 nilai tengah, bulat ke genap 10.10 2 2 1/2 Floating Point 4-23

Floating Point pada C Bahasa C memiliki dua format floating point : float single precision (32 bit) double double precision (64 bit) Casting antara format int, float, dan double mengubah nilai numerik dan representasi bit-nya : Dari int ke float Bilangan tidak akan overflow, tetapi dapat mengalami pembulatan Dari int atau float ke double Konversi secara eksak, double memiliki range dan presisi lebih besar Dari double ke float Dapat mengalami overflow (+ atau ) Dapat juga terjadi pembulatan, karena presisi lebih rendah Dari double atau float ke int Memotong bagian pecahan, mendekati nol, beda dengan rounding Floating Point 4-24

Ariane 5 Meledak 37 detik setelah peluncuran Membawa muatan, satelit seharga 500 juta dollar Mengapa terjadi kegagalan? Perhitungan kecepatan horisontal dilakukan dalam bilangan floating point Dikonversi ke integer 16-bit Bekerja baik pada Ariane 4 Pada Ariane 5 terjadi overflow Ariane 5 menggunakan perangkat lunak yang sama dengan Ariane 4, padahal kecepatan geraknya lima kali lebih tinggi dari Ariane 4 Floating Point 4-25

Ringkasan Floating point standar IEEE digunakan untuk merepresentasikan bilangan real dalam bentuk V = ( 1) s x M x 2 E Floating point digunakan untuk melakukan komputasi bilangan sangat besar ( V» 0), dan bilangan sangat dekat dengan nol ( V «1) Floating point dikodekan dalam tiga kasus : untuk nilai denormalized, normalized dan nilai khusus (tak hingga dan NaN) Hasil operasi floating point dapat mengalami pembulatan (rounding) Floating Point 4-26