1 / 32

Bit Behavior

Bit Behavior. memory-mapped I/O to port circuitry. int x = 14;. USB Cable. commands. 0000 1110. USB to switch interface. computer memory. 0000 - 0 0001 - 1 0010 - 2 0011 - 3 0100 - 4 0101 - 5 0110 - 6 0111 - 7. 1000 - 8 1001 - 9 1010 - 10 - A 1011 - 11 - B

sydnee
Download Presentation

Bit Behavior

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bit Behavior

  2. memory-mapped I/O to port circuitry int x = 14; USB Cable commands 0000 1110 USB to switch interface computer memory

  3. 0000 - 0 0001 - 1 0010 - 2 0011 - 3 0100 - 4 0101 - 5 0110 - 6 0111 - 7 1000 - 8 1001 - 9 1010 -10 - A 1011 -11 - B 1100 -12 - C 1101 -13 - D 1110 -14 - E 1111 -15 - F Start Thinking Binary Nibbles and Hex Digits

  4. Converting Binary to Hex 1010011110011110101100110100 step 1: break into “nibbles” 1010 0111 1001 1110 1011 0011 0100 step 2: convert each to Hex number 1010 0111 1001 1110 1011 0011 0100 A 7 9 E B 3 4

  5. Converting Hex to Binary 26D47FE16 2 6 D 4 7 F E 0010 0110 1101 0100 0111 1111 1110

  6. “Literals” • Hard numbers • 0, 15, 121, 78716 etc.

  7. Java Support for Binary / Hex From the Java Reference Manual: Integer literals are written in three formats: decimal (base 10), hexadecimal (base 16), and octal (base 8). Decimal literals are written as ordinary numbers, hexadecimal literals always begin with 0X or 0x, and octal literals begin with 0. For example, the decimal number 10 is 0xA or 0XA in hexadecimal format, and 012 in octal format.

  8. meaning? 0x1234 means 123416, which means 466010 0xAEF4 means 4478810

  9. why? 0 x 1AF4 can be converted easily into binary 1 A F 4 0001 1010 1111 0100 So hex shows up in programming all the time, because binary is the computer’s interface to the world

  10. 0000 - 0 - 0 0001 - 1 - 1 0010 - 2 - 2 0011 - 3 - 3 0100 - 4 - 4 0101 - 5 - 5 0110 - 6 - 6 0111 - 7 - 7 1000 - 8 - 8 1001 - 9 - 9 1010 -10 - A 1011 -11 - B 1100 -12 - C 1101 -13 - D 1110 -14 - E 1111 -15 - F dec - bin - hex

  11. Hex • 163 = 4096 • 162 = 256 0x742C ? (7 x 4096) + (4 x 256) + (2 x 16) + 12 28672 + 1024 + 32 + 12 29740

  12. try a few convert 1011 1010 0001 to hex B A 1 to decimal 11 x 162 + 10 x 16 + 1 convert 0x1A4 to decimal 256 + 160 + 4 convert 120410 to binary divide by 256, then remainder by 16, then 1 4 B 4 0100 1011 0100

  13. modulo • useful for converting decimal to binary. Modulo is nothing more than "remainder after division." • So 20 modulo 5 is 0 because 20 divided by 5 is 4 with no remainder. 21 modulo 5 is 1 22 modulo 5 is 2 23 modulo 5 is 3 24 modulo 5 is 4 25 modulo 5 is 0 In Java, modulo is represented as the percent sign. So int a = 20 % 5 ; sets a to be zero.

  14. Computer Memory • “1 megabyte” of memory means one million, 8-bit (binary digit) numbers • 1048576 bytes (10242, 220): This definition is most commonly used in reference to computer memory, but most software that display file size or drive capacity, including file managers also use this definition. • 1024000 bytes (1000×1024): This is used to describe the formatted capacity of the "1.44 MB" 3.5 inch HD floppy disk, which actually has a capacity of 1474560 bytes. • Each byte can hold a number from 0 to 255, or -127 to +127 (signed) or -128 to +127 (2’s compliment) • Called memory, because the computer uses each bit as a switch, that it sets to ON or OFF.

  15. Bits/Bytes can represent ANYTHING Numbers 0 0000 0000 1 0000 0001 2 0000 0010 3 0000 0011 4 0000 0100 5 0000 0101

  16. Bits/Bytes can represent anything Letters (called ASCII) - American Standard Code for Information Interchange A - 65 - 1000 0001 B - 66 - 1000 0010 C - 67 - 1000 0011 D - 68 - 1000 0100 a - 97 - 1100 0001 b - 98 - 1100 0010 c - 99 - 1100 0011 d - 100 - 1100 0100

  17. 7 switches to control a whole robot

  18. A Computer “port” • Connects 1 byte of memory to outside world

  19. Java Support for Binary “Bitwise” – operate on separate binary digits Bitwise operators are of two types: • shift operators • boolean operators

  20. Shifting Bits The shift operators are used to shift the binary digits of an integer number to the right or the left, to quickly multiply or divide by 2. byte i = 13;  // is 0000 1101 i = i << 2;  // is 0011 0100 = 5210 i = i >> 3;  // is 0000 0110 = 610

  21. Bitwise AND a b 0 & 0 = 0 // are a AND b = 1? 0 & 1 = 0 1 & 0 = 0 1 & 1 = 1

  22. Bitwise OR a b 0 | 0 = 0 // is a OR b = 1? 0 | 1 = 1 1 | 0 = 1 1 | 1 = 1

  23. 1111 1111 & 0011 0010 = 0011 0010 1111 1111 | 0000 0000 = 1111 1111 A byte at a time…

  24. Manipulating Bytes byte i = 0x5A; // 0101 1010 byte j = 0x0F; // 0000 1111 int k; k = i | j; // 0101 1111 = 0x5F = 9510 k = i & j; // 0000 1010 = 0x0A = 1010

  25. Bit Position 0xBC 1 0 1 1 1 1 0 0 position: 7 6 5 4 3 2 1 0 MSB LSB most least significant significant bit bit

  26. example to test hardware state if port value = 0111 0001; and if bit 5 represents the elbow motor… is bit 5 == 1? int x = port & 0010 0000; if (x != 0) {

  27. A “MASK” • A byte with just one 1, and all 0’s • Mask for bit 1: 0000 0010 • Mask for bit 7: 1000 0000 • Mask for bit 6: 0100 0000

  28. Masking (isolate a bit) byte x = 0xBC; // 1011 1100 byte y = 0x62 // 0110 0010 byte mask = 0x40; // 0100 0000 (mask bit 6) int r, q; r = x & mask; 0000 0000 (r is zero, therefore bit 6 of x is 0) q = y & mask; 0100 0000 (q is nonzero, bit 6 of y must be 1)

  29. Good Exam Questions byte x = 0xAA; 1010 1010 what is bit 0? 0 what is the MSB? 1 what is bit 3? 1

  30. Exam Questions - Bitwise Operations byte x = 0x03; // 0000 0011 byte y = 0xFA; // 1111 1010 int q,r; q = x | y; what is q? 1111 1011 r = x & y; what is r? 0000 0010

  31. Good Exam Questions • convert 1ACC16 to decimal • convert 12AE16 to binary • convert 0111 1011 to hexadecimal • convert 0111 1011 to decimal • what is 1310 shifted right two bits? • what is 0 & 1? • what is 1 | 1?

More Related