Language of the
computer(Sign and unsigned numbers)
Numbers disimpan dalam computer hardware dengan
menggunakan series of electronic signals.
Electronic signals ini sentiasa dianggap sebagai
base 2 numbers.(Base 2 numbers dipanggil sebagai binary numbers.)
Semua maklumat terdiri daripada binary digits or
bits. Bits mempunyai dua value dimana kita boleh menganggapnya sebagai tinggi
atau rendah,betul atau salah,ataupun 1 atau 0.
Kami kira bits dalam sesuatu word daripada kanan ke
kiri seperti di bawah:-
31
30 2928
|
27
262524
|
23
222120
|
19
18 1716
|
15
14 1312
|
11
10 9 8
|
7
6
5 4
|
3
2 1 0
|
0
0 0 0
|
0 0
0 0
|
0
0
0 0
|
0 0
0 0
|
0 0
0 0
|
0 0
0 0
|
0 0
0 0
|
0 0
0 0
|
Table: 32-bit wide.
Note: The phrase least
significant bit adalah merujuk kepada right-most bit iaitu bit 0 ke atas,
manakala phrase most significant bit adalah
merujuk kepada left-most bit iaitu bit 31.
Hardware boleh dicipta untuk add,subtract,multiply
dan juga divide binary bit patterns.
Sebenarnya, number(positive value) mempunyai infinite
digits of 0s at the leftmost digits. Kalau number tidak boleh reperesents oleh
rightmost bits, overflow akan
berlaku. Semasa overflow belaku, ia
adalah bergantung kepada programming language, operating system untuk
menentukan apa yang patut dilakukan.
Computer program boleh mengira positive dan juga
negative numbers, oleh itu kami perlulah mencarikan representation untuk
membezakan positive numbers daripada negative number. Cara terbaik adalah
dengan menambah separate sign.
Di bawah merupakan perbandingan antara Unsigned
Binary Integers dan Signed
Integers.
A. Unsigned Binary Integers
Formula untuk mengira:
-Linkungan: 0 to +2n – 1 (n = bit
terakhir)
-Value(From the smallest to the largest): 0 sampai
+4,294,967,295
Di bawah merupakan image bagi the convention of unsigned binary number.
Note: 32-bit binary numbers boleh dikira dengan
menggunakan bit value multiply with power of 2(2x dimana x merupakan
xth bit of the numbers.)
B. Signed Binary Integers
Formula untuk mengira:
-Linkungan: –2n – 1 to +2n – 1
– 1 (n = bit terakhir)
-Value(From the smallest to the largest): –2,147,483,648
to +2,147,483,647
Di bawah merupakan image bagi convention of the
signed binary number dimana kita memanggil sebagai 2’s complement
representation.
Bagi signed binary number, bahagian positive numbers
menggunakan cara representation yang sama seperti biasa, iaitu from 0 to 2,147,483,64710(231-1).
Bits yang seterusnya adalah the most negative number(-2,147,483,64810).
2’s complement representation mempunyai kebaikan
iaitu semua negative numbers mempunyai 1 dalam most significant bit. Biasanya, hardware hanya menguji bits dan
menentukan ia adalah positive ataupun negative(number 0 dianggap sebagai
positive). Bits ini dikenali sebagai sign
bits.
Di dalam Signed Binary Integers, sign bit multiplied oleh -231(most significant bit) dan bits yang lain akan multiplied oleh
positive versions base values masing-masing.
-Most-negative: 1000 0000 … 0000
-Most-positive: 0111 1111 … 1111
Overflow berlaku apabila leftmost bit bagi binary bits pattern tidak sama dengan
infinite number of digits kepada kiri. Ini adalah terbukti sign bits adalah salah(0 wujud apabila number adalah negative
ataupun 1 wujud apabila number adalah positive ).
Terdapat 2
shortcut yang berguna untuk mengira 2’s complement numbers.Shortcut yang
pertama adalah cara yang cepat untuk negate 2’s complement numbers.Kita hanya
perlu tukar semua 0 kepada 1 dan semua 1 kepada 0, selepas itu menambah 1
kepada value yang kita dapat.
Example: Sign Negation
Question: Negate 1310 and then check the
result by negating -1310.
1310 = 0000 0000 0000 0000 0000 0000 0000
11012
Negating number dengan menukarkan semua 0 kepada 1 dan semua 1 kepada 0, dan terakhir
sekali menambah 1 kepada result.
1111 1111 1111 1111 1111 1111 1111 00102+12
= 1111
1111 1111 1111 1111 1111 1111 00112
=-1310
Sebaliknya, check the result by negating -1310,
-1310
= 1111 1111 1111 1111 1111 1111 1111 00112
Negating number dengan menukarkan semua 0 kepada 1 dan semua 1 kepada 0, dan terakhir
sekali menambah 1 kepada result.
0000 0000
0000 0000 0000 0000 0000 11002+12
= 0000 0000 0000 0000 0000 0000 0000 11012
=-1310
Shortcut yang
lain dipanggil sebagai
Example: Sign
Extension Shortcut
Question:
Convert 16 bits binary of 1310 and -1310 to 32-bit binary
numbers.
16-bit binary
version bagi number 13 adalah
1310 = 0000 0000 0000 11012
Bagi menjadikan
bits binary of 1310 kepada 32-bit binary numbers,
tambah lagi 16 copies di most significant bit dengan menggunakan bit
0s(positive value).
→1310 = 0000 0000 0000 0000 0000 0000
0000 11012
Negate 16-bit version of 210,
0000 0000
0000 11012 →1111 1111 1111 00102
+ 12
⇒1111
1111 1111 00112
Bagi menjadikan
bits binary of -1310 kepada 32-bit binary numbers,
tambah lagi 16 copies di most significant bit dengan menggunakan bit
1s(negative value).
Jawapan:
-1310
= 1111 1111 1111 1111 1111 1111 1111 00112
Method ini dapat
digunakan kerana positive 2’s complement number mempunyai infinite number of 0s
di most significant bit dan sebaliknya negative 2’s complement number mempunyai
infinite number of 1s di most significant bit.
The binary bit pattern
representing a number hides leading bits to fit the width of the hardware; sign
extension simply restores some of them.
Written By: SIM
FU CHENG(B031210069)
0 comments:
Post a Comment