Bits and binary · Bit và nhị phân
Bits: the smallest piece of data
- A bit is one digit that is either
0or1. - Computers store everything — numbers, text, images — as bits.
- One bit alone is small, so we group many bits together.
Bits: đơn vị dữ liệu nhỏ nhất
- Một bit là một chữ số có giá trị là
0hoặc1. - Máy tính lưu trữ mọi thứ — số, văn bản, hình ảnh — dưới dạng bits.
- Một bit đơn lẻ rất nhỏ, vì vậy chúng ta gom nhiều bit lại thành nhóm.
Why computers use binary
- A computer chip has tiny switches. Each switch is on or off.
on=1andoff=0. So two states fit a chip perfectly.- Counting with only
0and1is called binary (base 2).
Tại sao máy tính dùng nhị phân
- Một vi mạch máy tính chứa các công tắc điện tử nhỏ. Mỗi công tắc có trạng thái bật hoặc tắt.
on=1vàoff=0. Vì vậy hai trạng thái hoàn toàn phù hợp với cấu trúc của chip.- Đếm chỉ bằng
0và1được gọi là nhị phân (hệ cơ số 2).
How binary counts
- Our normal numbers use base 10 (digits
0–9). - Binary uses base 2. Each place is worth twice the place on its right.
- The places are
8 4 2 1. So1101means8 + 4 + 0 + 1 = 13.
Cách đếm trong nhị phân
- Các số thông thường của chúng ta sử dụng hệ cơ số 10 (các chữ số
0–9). - Nhị phân sử dụng hệ cơ số 2. Giá trị của mỗi vị trí gấp đôi so với vị trí ngay bên phải nó.
- Các vị trí tương ứng với
8 4 2 1. Do đó1101biểu thị cho8 + 4 + 0 + 1 = 13.
place: 8 4 2 1
bits: 1 1 0 1 -> 8 + 4 + 0 + 1 = 13
Python can convert for you
bin(13)gives the string'0b1101'. The0bjust means "this is binary".int("1101", 2)reads"1101"as base 2 and gives13.- These two functions go in opposite directions.
Python có thể chuyển đổi giúp bạn
bin(13)cung cấp chuỗi'0b1101'. Phần0bchỉ có nghĩa "đây là nhị phân".- Hàm
int("1101", 2)đọc số"1101"theo cơ số 2 và trả về kết quả là13. - Hai hàm này hoạt động ngược chiều nhau.
print(bin(13)) # decimal -> binary
print(int("1101", 2)) # binary -> decimal
Fixed bits and overflow
- A computer keeps a number in a fixed number of bits.
- With 4 bits you can store
0to15— that is2**4 = 16different values. - If a result is too big, it wraps around back to
0. This is overflow.
Bits cố định và tràn số
- Máy tính giữ một số trong một số lượng bit cố định.
- Với 4 bit, bạn có thể lưu trữ từ
0đến15— tức là tổng cộng2**4 = 16giá trị khác nhau. - Nếu kết quả quá lớn, nó sẽ quay vòng về
0. Hiện tượng này gọi là tràn số (overflow).
print(2 ** 4) # how many values 4 bits hold = 16
print((15 + 3) % 16) # 18 is too big, so it wraps to 2
Common mistakes
nbits store2**ndifferent values, from0to2**n - 1.- Binary is base 2: each place is worth twice the one to its right.
Lỗi thường gặp
- Số bit
ncó thể lưu trữ2**ngiá trị khác nhau, từ0đến2**n - 1. - Nhị phân là hệ cơ số 2: giá trị của mỗi vị trí gấp đôi so với vị trí bên phải nó.
Now you try
- Type your code below and press Run to see the output.
- Press Check answer to test it.
Bây giờ bạn thử
- Gõ code của bạn bên dưới và nhấn Chạy để xem kết quả.
- Nhấn Kiểm tra đáp án để thử nghiệm.
Binary counts in powers of 2 · Nhị phân đếm theo lũy thừa của 2
Each bit is a power of two; lit bits add up to the value. · Mỗi bit là một lũy thừa của hai; các bit bật sáng cộng lại tạo thành giá trị.
Use bin(...) to print the binary form of 20. The output should look like 0b10100. · Sử dụng bin(...) để in dạng nhị phân của 20. Kết quả đầu ra nên trông giống như 0b10100.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
The binary string "110" is a number. Use int(s, 2) to print it as a normal (decimal) number. · Chuỗi nhị phân "110" là một số. Hãy dùng int(s, 2) để in nó dưới dạng số thông thường (thập phân).
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
A counter has 5 bits, so it holds 2**5 = 32 values. Store 2**5 in size. Then store (30 + 5) % size in result to show how the value wraps around (overflow). · Một bộ đếm có 5 bit, nên nó chứa được 2**5 = 32 giá trị. Lưu 2**5 vào size. Sau đó lưu (30 + 5) % size vào result để minh họa cách giá trị bị tràn (overflow).
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.