Bit significant, Bit shifting

Phân biệt MSB và LSB

a, msb và lsb (Chữ thường)

Hai khái niệm này được dùng trong phạm vi 1 byte.

MSB - LSB - Bit significant

Ví dụ: Trên hình ta có số 10100101 = 165

b, MSB và LSB (Chữ hoa)

Hiểu đơn giản:

Hai khái niệm này cũng liên quan đến việc tổ chức các byte dữ liệu trong bộ nhớ (memory, register..vv). Nó cũng liên quan đến khái niệm Endian (hay Big Endian ) và Endianless (Litte Endian).

Ví dụ: Trong code ta có một string:

string[3] = {'A', 'B', 'C'} ;

Ba phần tử này được lưu thế nào trong bộ nhớ?

Bộ nhớ thì được đánh địa chỉ từ thấp đến cao. Vậy, thằng A được đánh ở địa chỉ nào, thằng C ở địa chỉ nào? Điều này hoàn toàn phụ thuộc vào hệ thống( MCU platform) là big-endian system hay little endian system.

Hiểu đơn giản, thằng Big-Endian là thằng “đuôi to”, MSB sẽ được xếp ở địa chỉ thấp rồi các byte sau được sếp theo địa chỉ to dần.

Ngược lại Little Endian là thằng “đuôi nhỏ”, LSB được xếp ở địa chỉ thấp, các byte tiếp theo được sếp ở địa chỉ to dần.

Định nghĩa từ Wikipedia:

The terms endian and endianness refer to the convention used to interpret the bytes making up a data word when those bytes are stored incomputer memory

Big Edian vs Little Edian

Phân biệt Arithmetic Shift và Logical Shift

Hai khái niệm này đều liên quan đến phép dịch bít và các phép toán liên quan đến bit (bitwise operation).

Câu hỏi đặt ra ở đây là: vị trí mà bit bị dịch đi ấy (vacant bit position) thì ta điền số mấy vào vị trị đó, 0 hay là 1?

a, Logical Shift

b, Arithmetic Shift (phép dịch số học)

Shift Bit