Ký tự số (Integer literal) có thể được biểu diễn dưới dạng hệ nhị phân, hệ bát phân và hệ thập lục.
- Hệ nhị phân sẽ được quy định như sau: tiền tố 0b là bắt buộc, sau đó đến các ký tự 0 hoặc 1, không giới hạn số
ví dụ về số nhị phân đúng: 0b101010
ví dụ về số nhị phân sai:
0b120000: có chứa ký tự khác số 0 và 1 sau phần tiền tố
00b010101: 2 ký tự đầu tiên không phải là 0b
Có mẹo nhớ ở đây đối với mình là chữ b là chữ đầu của binary.
cách tính đổi từ số nhị phân sang số nguyên
Ví dụ số: 0b10101
ở đây sau số b thì mình sẽ đánh số theo chiều từ phải sang trái là từ 0 đến n. Sau đó sử dụng cơ số 2 với số mũ tương ứng. Với ví dụ ở trên ta sẽ có 0b43210 = 1*(2 mũ 4) + 0*(2 mũ 3) + 1(2 mũ 2) + 0(2 mũ 1) + 1(2 mũ 0)
2. Hệ bát phân sẽ được quy định như sau: tiền tố 0 là bắt buộc, sau đó đến các ký tự từ 0 đến 7, không giới hạn số
ví dụ về số nhị phân đúng: 0174154554
ví dụ về số nhị phân sai:
1120000: Bắt đầu bằng ký tự không phải 0
0173624678: có chứa ký tự 8
Có mẹo nhớ ở đây đối với mình là số 0 chẳng có ý nghĩa gì -)))
cách tính đổi từ hệ bát phân sang số nguyên
Ví dụ số: 01543
ở đây sau số b thì mình sẽ đánh số theo chiều từ phải sang trái là từ 0 đến n. Sau đó sử dụng cơ số 8 với số mũ tương ứng. Với ví dụ ở trên ta sẽ có 03210 = 1*(8 mũ 3) + 5*(8 mũ 2) + 4(8 mũ 1) + 3( mũ 0)
2. Hệ thập lục sẽ được quy định như sau: tiền tố 0x là bắt buộc, sau đó đến các ký tự từ 0 đến 9 và từ a – f (tương ứng với 10-15), không giới hạn số
ví dụ về số nhị phân đúng: 0x157637bcd
ví dụ về số nhị phân sai:
0x0000hj: chứa ký tự ngoài a-f là h và j
073624678: không bắt đầu bằng ox
Có mẹo nhớ ở đây đối với mình là số x là viết tắt của hexadecimal.
cách tính đổi từ hệ thập lục phân sang số nguyên
Ví dụ số: 0xa1b
ở đây sau x thì mình sẽ đánh số theo chiều từ phải sang trái là từ 0 đến n. Sau đó sử dụng cơ số 16 với số mũ tương ứng. Với ví dụ ở trên ta sẽ có ox210 = 10*(16 mũ 2) + 1*(16 mũ 1) + 11(16 mũ 0)
Vậy thì với 3 hệ số trên ta hoàn toàn có thể sử dụng phép so sánh như sau:
int a = 4;a == 0b100 cho kết quả true
Tiếp theo nữa là phép ++ và phép — trong Java là phép dịch bit nhị phân.
Cụ thể nếu ta có int a = 4 nghĩa là a đang được lưu là 0b100. Nếu ta thực hiện a ++ nghĩa là ta thực hiện dịch bit ở đây ta sẽ có a là 0b101.
Vì vậy mặc dùng các bạn thấy a++ và a = a+1 thì trong vòng lặp for ngta vẫn dùng a++ vì phép dịch bit nó sẽ nhanh hơn rất rất rất nhiều so với phép gán.
Và a = a+1 nó chẳng khác gì so với a = a +10000 cả.
Hơn nữa phép dịch bit thì các bạn hoàn toàn có thể thực hiện với kiểu bit còn một khi các bạn sử dụng a= a+1 rồi thì nó phải là số int trở lên các bạn nhé.

Leave a Reply