CSAPP笔记:Bits, Bytes and Integer01
        
        
            
                course website:here
CSAPP笔记:Bits, Bytes
Representing information as bits
Everything is bits
- 0/1
 - encoding/interpreting sets of bits in various ways
- instructions
 - represent and manipulate numbers. sets and strings
 
 - why use bits?
- easy to store
 - reliably transmitted on noisy and inaccurate wires
 
 
Encoding Byte Values
- Binary 00000000-11111111
 - Decimal 0-255
 - Hexadecimal 00-FF
 
Example Data Representations
Bit level manipulation
Boolean algebra
Example: Representing and manipulating Sets
widely used
- symmetric difference is 对称差 in chinese:
 
shift
- left shift
 - right shift
- logical shift
 - arithmetic shift
 
 - undefined behavior
- shift amount < 0 or >= word size
 
 
Integers
Representing signed and unsigned
Encoding Ints
Unsigned
Signed
- for two’s complement, most significant bit indicated sign
- 0 for nonnegative
 - 1 for negative
 
 
Numeric Ranges
Unsigned
0 ~
Two’s Complement(universal)
Minus 1
1111…111
values for W = 16
values for different word sizes
- 64bits TMax has 18 位
 
Conversion, Casting
Mapping between Signed & Unsigned
- keep bit representations and reinterpret
 
- casting may cause some surprises , we need to be careful
- 0 == 0U
 - -1 < 0
 - -1 > 0U
 - 2147483647U < -2147483648
 
 
what does this code return for TMin?
- it will return TMin(100…000)
 
why UMax = 2TMax+1?
What if i is declared unsigned?
- infinite loop: 0->UMax
 
another example
- infinite loop
 
Expanding, Truncating
Sign Extension
example:
- the above is a negative number
 
Truncating
- it’ so funny here, the professor does the additions wrongly for two times
 
- it wasn’t a very interesting example :)
 
- positive number may become negative number
 - negative number may become positive number
 
- Post title:CSAPP笔记:Bits, Bytes and Integer01
 - Post author:sixwalter
 - Create time:2023-08-05 11:14:26
 - Post link:https://coelien.github.io/2023/08/05/course-learning/CMU-213/213_bits01/
 - Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
 
         Comments