Literals an Primitive Casting

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.

  1. 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é.


Comments

One response to “Literals an Primitive Casting”

Leave a Reply

Your email address will not be published. Required fields are marked *