Hỏi về mã ascii

Anh chị cho em hỏi ?
Khi char lưu trữ một ký tự . Thì biến lưu code ASCII hay lưu ký tự đấy luôn
VD :

char cChuChuyenDoi='7';  // cả hai trường hợp này lưu trong biến ở dạng code hay dạng ký tự ạ
char cChuChuyenDoi=7;

Em cám ơn :heart_eyes:

Nó lưu mã kí tự, cũng là lưu kí tự đó luôn. Nhưng tùy theo giá trị gán.

  • char x = '7' là kí tự '7' có mã là 0x37 (thập phân: 67).
  • char x = 7 cũng là kí tự, nhưng giá trị gán là số nên đó là mã kí tự, sẽ được ép về dạng kí tự (không hiển thị) là 'BEL' (bell, alarm) còn được viết là '\a'.

Tham khảo: http://www.asciitable.com/

5 Likes

2 thằng đó là một.
Ký tự ‘0’ chỉ là cách viết khác của 48.

2 Likes

khác nhau nhé bạn, như ông SITUVB.gcd mới đúng

4 dòng này có giống nhau không ? Nếu có thì tại sao ?

char c = '0';
char c = 48;
char c = 0x30;
char c = 0b00110000;
4 Likes

Có giống nhau, nhưng ở đây chúng ta cần giải thích tại sao c = ‘7’ khác c = 7
Và bạn @SITUVN.gcd nói đúng :slight_smile:

1 Like

@Nguyen_Thanh_Minh1
Vậy để dễ hiểu thì:
Một ký tự nó cũng chỉ là 1 con số. Và 1 con số thì có nhiều cách viết.
Hãy xem bảng dưới để tra cách viết tương ứng. Đây là bảng mã ASCII.
Khi ta viết =7, ta đang viết theo hệ Dec
Khi ta viết = ‘7’, ta đang viết một Char.
Nhìn bảng sẽ thấy 7 (Dec) khác 7(Char)

5 Likes

Chuẩn cơm mẹ nấu rồi :+1::+1:

2 Likes

Vì tất cả chỉ là cách biểu diễn khác nhau của cùng một cái.

Và đều lưu trên RAM là 0b00110000. (không có 0b)

2 Likes

Dạ em hiểu rồi . Em ơn :grinning:

Dạ em cám ơn :smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?