+ All Categories
Home > Documents > UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

Date post: 17-Jan-2016
Category:
Upload: katrina-bridges
View: 223 times
Download: 0 times
Share this document with a friend
18
UniMAP Sem2- 10/11 DKT121: Fundamental of Computer Programming 1 Number Systems and Bitwise Operation
Transcript
Page 1: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 1

Number Systems and Bitwise Operation

Page 2: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 2

Binary, Octal, Hexadecimal, and Decimal

Binary Binary numbering system has only two possible values for each

digit: 0 and 1.

For example, binary number decimal number 0 0 1 1 10 2 11 3 100 4 101 5 110 6 1100 1010 202

Page 3: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 3

Decimal Numbers

Decimal The digits' weight increases by powers of 10. The

weighted values for each position is determined as follows:

For example, A decimal number 4261 can be thought of as follows.

4 * 1000 + 2 * 100 + 6 * 10 + 1 * 1= 4000 + 200 + 60 + 1= 4261 (decimal)

104 103 102 101 100

10000 1000 100 10 1

Page 4: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 4

Binary, Octal, Hexadecimal, and Decimal

Binary The digits' weight increases by powers of 2. The weighted

values for each position is determined as follows:

27 26 25 24 23 22 21 20

128 64 32 16 8 4 2 1

For example, binary 10 is decimal 2.the binary value 1100 1010 represents the decimal value 202.

1 * 128 + 1 * 64 + 0 * 32 + 0 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1 = 128 + 64 + 0 + 0 + 8 + 0 + 2 + 0= 202 (decimal)

Page 5: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 5

Binary Two’s Complement

The left-most bit is the sign bit. If it is 1, then the number is negative.

Otherwise, it is positive. Give a negative value, represent it in binary two’s

complement form as follows.

1. write the number in its absolute value.2. complement the binary number.3. plus 1.

Example, represent –2 in binary two’s complement with 16 bits for short int.

Binary value of 2: 0b0000 0000 0000 0010

Binary complement of 2: 0b1111 1111 1111 1101

Plus 1: +1 Binary two’s complement representation of -2: 0b1111 1111

1111 1110

Page 6: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 6

Give binary two’s complement form of a negative number, find

the absolute value of the negative value as follows.1. Complement the binary number.2. Plus 1.

Example, find the decimal value of (0b1111 1111 1111 1110)2

in binary two’s complement form with 16 bits.

1. Binary two’s complement (0b1111 1111 1111 1110)2

2. Binary complement (0b0000 0000 0000 0001)2 3. Plus 1 +14. Absolute value: (0b0000 0000 0000 0010)2

= 210

5. Negative value: -2

Page 7: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 7

Subtraction of a value in the computer can be treated as addition

of its two’s complement. For example, the subtraction of (2-2) can

be performed as 2+(-2) as follows:

0b0000 0000 0000 0010 (binary representation of 2)0b1111 1111 11111110 (two’s complement

representation of -2)0b0000 0000 0000 0000 (2+(-2))

Page 8: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 8

Example

> short i, j> i = 0b00000000000000102> j = 0b1111111111111110-2> i+j0

Page 9: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 9

Octal The octal system is based on the binary system with a 3-bit

boundary. The octal number system uses base 8 includes 0 through 7. The weighted values for each position is as follows:

83 82 81 80

512 64 8 1

1. Binary to Octal Conversion• Break the binary number into 3-bit sections from the

least significant bit (LSB) to the most significant bit (MSB).

• Convert the 3-bit binary number to its octal equivalent.

For example, the binary value 1 010 000 111 101 110 100 011 equals to octal value (12075643)8.

Page 10: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 10

2. Octal to Binary Conversion• Convert the octal number to its 3-bit binary

equivalent. • Combine all the 3-bit sections.

For example, the octal value 45761023 equals to binary value

100 101 111 110 001 000 010 011.

3. Octal to Decimal Conversion

To convert octal number to decimal number, multiply the value in each position by its octal weight and add each value together. For example, the octal value (167)8 represents decimal value 119.

1*64 + 6*8 + 7*1 = 119

Page 11: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 11

Hexadecimal

Similar to octal, the hexadecimal system is also based on the binary system but using 4-bit boundary. The hexadecimal number system uses base 16 including the digits 0 through 9 and the letters A, B, C, D, E, and F. The letters A through F represent the decimal numbers 10 through 15. For the decimal values from 0 to 15, the corresponding hexadecimal values are listed below.

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

F E D C B A 9 8 7 6 5 4 3 2 1 0

Decimal

Hexadecimal

Page 12: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 12

The weighted values for each position is as follows:

163 162 161 160

4096 256 16 1

The conversion between binary value and hexadecimal value is similar to octal number,but using four-bit sections. The hexadecimal value 20A represents decimal value 522.

2*256 + 0*16 + 10*1 = 522

Page 13: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 13

Following table provides all the information you need to convert from one type number into any other type number for the decimal values from 0 to16.

Binary Octal Decimal Hex Binary Octal Decimal Hex

0000 00 00 00 1001 11 09 09

0001 01 01 01 1010 12 10 A

0010 02 02 02 1011 13 11 B

0011 03 03 03 1100 14 12 C

0100 04 04 04 1101 15 13 D

0101 05 05 05 1110 16 14 E

0110 06 06 06 1111 17 15 F

0111 07 07 07 10000 20 16 10

1000 10 08 08

Page 14: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 14

Bitwise Operators There are six bitwise operators:

Operator Name Description

& bitwise AND The bit is set to 1 if the corresponding bits in the two operands are both 1.

| bitwise OR The bit is set to 1 if at least one of the corresponding bits in the two operands is 1.

^ bitwise exclusive OR The bit is set to 1 if exactly one of the corresponding bits in the two operands is 1.

<< left shift Shift the bits of the first operand left by the number of bits specified by the second operand; fill from right with 0 bits.

>> right shift Shift the bits of the first operand right by the number of bits specified by the second operand; filling from the left is implementation dependent.

~ One’s complement Set all 0 bits to 1, and all 1 bits to 0.

Page 15: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 15

Example:

a 1 0 1 1 0 1 0 0

b 1 1 0 1 1 0 0 1

a & b 1 0 0 1 0 0 0 0

a | b 1 1 1 1 1 1 0 1

a ^ b 0 1 1 0 1 1 0 1

b << 1 1 0 1 1 0 0 1 0

a >> 1 1 1 0 1 1 0 1 0

~a 0 1 0 0 1 0 1 1

Page 16: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 16

/* File: bitop.ch (run in Ch only) Use Ch features “%b” and 0b */#include <stdio.h>

int main() { char a = 0b10110100; char b = 0b11011001; char c;

printf("a = 0b%8b\n", a); printf("b = 0b%8b\n", b); c = a & b; printf("a & b = 0b%8b\n", c); c = a | b; printf("a | b = 0b%8b\n", c); c = a ^ b; printf("a ^ b = 0b%8b\n", c); c = b << 1; printf("b << 1 = 0b%8b\n", c); c = a >> 1; printf("a >> 1 = 0b%8b\n", c); c = ~a; printf("~a = 0b%8b\n", c);

return 0;}

Output:

a = 0b10110100b = 0b11011001a & b = 0b10010000a | b = 0b11111101a ^ b = 0b01101101b << 1 = 0b10110010a >> 1 = 0b11011010~a = 0b01001011

Page 17: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 17

Logic Operators There are four logic operators:

1) ! --- logic NOT2) && --- logic AND3) || --- inclusive OR4) ^^ --- exclusive OR (available in Ch

only)

a b !a a && b a || b a ^^ b

0 0 1 0 0 0

0 1 1 0 1 1

1 0 0 0 1 1

1 1 0 1 1 0

Page 18: UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Number Systems and Bitwise Operation.

UniMAP Sem2-10/11

DKT121: Fundamental of Computer Programming 18

End Number Systems and Bitwise Operation

Q & A!


Recommended