Trước khi tìm hiểu Java hay bất kỳ một ngôn ngữ lập trình nào, như đã nói trong phần mở đầu, chúng ta nên tìm hiểu một số khái niệm căn bản.
Có lẽ khi tìm hiểu về lập trình, dù là đã khá lâu hay mới…hôm qua Laughing thì bạn cũng đã nghe tới hệ đếm nhị phân, thập phân…Tại sao lại cần những cái đó nhỉ?
Chúng ta thường đếm 1,2,3,4,5… Nhưng khổ nỗi, ngay cả mấy con số đơn giản đó máy tính cũng không thể hiểu! Nó chỉ hiểu được hai trạng thái: có-không, bật -tắt, có tín hiệu-không có tín hiệu… Nói cách khác, nếu ta qui định sô 0 là một trạng thái và số 1 là một trạng thái khác thì máy tính sẽ hiểu được hai con số đó. Và nếu ta qui định một trật tự sắp xếp nào đó cho một nhóm vài số 0-1 thành các chữ a-b-c… hay các số 1-2-3-4….và “dạy cho máy tính” biết thì nó sẽ hiểu. Khoan nói tới các chữ, chỉ bàn tới các con số, có lẽ bạn sẽ nhận ra rằng để máy tính hiểu các số 123 hay 3765 thì chúng ta phải thay thế bằng một dãy các số 0-1.Bạn dùng thử chính chương trình Calculator của Windows để xem số 123 đổi qua các số 0-1 (nhị phân,sẽ bàn sau) sẽ là gì. Trên menu của Calculator, bạn click vào View, sau đó chọn Scientific. Nhập số 123, sau đó click chọn Bin, bạn sẽ thấy số 123 tương đương với 1111011. Số 1111011 này chính là số 123 chuyển qua hệ đếm nhị phân (Binary number system)
Hệ đếm:
Hệ đếm dùng để đếm. Có rất nhiều hệ đếm khác nhau: Hệ 2, hệ 8, hệ 10, hệ 16…
Trong hệ đếm ta sẽ gặp khái niệm cơ số. Cơ số là số lượng ký hiệu dùng trong hệ đếm. Ví dụ hệ đếm cơ số 2 sẽ có 2 ký hiệu là 0-1; hệ đếm cơ số 10 thì có 10 ký hiệu là: 0-1-2-3-4-5-6-7-8-9.
Một cách chung nhất thì hệ đếm cơ số a sẽ sử dụng a ký hiệu để biểu diễn và giá trị nhỏ nhất bằng 0 , giá trị lớn nhất bằng a-1. Các số trong mỗi hệ đếm được sắp xếp theo thứ tự từ phải qua trái và được ký hiệu từ bắt đầu từ 0. Giá trị của chữ số n bằng số đó nhân với giá trị vị trí. Nếu gọi n số lượng các chữ số, số đầu tiên có vị trí là n-1, số thứ hai có vị trí là n-2… , ta sẽ có giá trị vị trí = a vị trí .
Ví dụ: Số 123 ở ví dụ trên, số 1 sẽ có vị trí là 2 (3-1), số 2 sẽ có vị trí là 1(3-2) và số 3 sẽ có vị trí là 0(3-3).Giá trị vị trí tương ứng sẽ là 102 – 101 – 100.Và giá trị các số sẽ là: 102 x 1 + 101 x 2 + 100 x 3 = 100 + 20 + 3 = 123
Chuyển một số từ hệ 10 sang hệ 2:
Bạn chia số đó liên tục cho 2 cho đến khi kết quả phép chia bằng 0. Sau đó lấy phần dư các lần chia viết theo thứ tự ngược lại như hình dưới.
Bit và Byte:
Một bit chính là một số nhị phân, có giá trị 0 hoặc 1. Bạn thấy 1 bit sẽ có bao nhiêu giá trị khác nhau? Chỉ có 2 giá trị khác nhau là 0 hay 1. Vậy 2 bit thì sao? Ta sẽ có 4 cặp giá trị khác nhau: 00-11-01-10. Tổng quát n bit sẽ có an giá trị khác nhau.
Một byte bằng 8 bit. Tại sao một byte = 8 bit? Bạn tham khảo bảng ASCII sau:
Bạn sẽ thấy tổng cộng có 256 trường hợp khác nhau cần biểu diễn.
Ta sẽ cần bao nhiêu bit để biểu diễn 256 trường hợp khác nhau?
Theo như trên, bạn sẽ dễ dàng thấy 2 8 = 256 tức là cần 8 bit
Tạm thời ta chỉ thảo luận một vài khái niệm như vậy.
Theo lập trình việt
0 nhận xét:
Đăng nhận xét