Chào mây bạn,
Mình đọc tài liệu lập trình C++ thì thấy có nói về trường hợp lỗi khi nhập vượt quá phạm vi biến thế này:
Khai báo biến x --> unsigned char, thì có phạm vi từ 0 đến 255, nếu nhập giá trị vượt quá phạm vi đó thì thực chất biến x = - (256 - x), trong tài liệu họ chỉ nói thế.
Mình làm thêm thì thấy đối với biến char cũng tính công thức giống thế, suy ra chắc là x = -(2^[n byte] - x) nếu x vượt quá phạm vi của biến dùng [n byte], kể cả có dấu hay không. Vấn đề mình thắc mắc là nếu nhập giá trị quá lớn, để đối với đã dùng công thức trên mà vẫn bị ngoài phạm vi biến thì thế nào ?
Với sẳn đây cho mình hỏi luôn, biến unsigned char chứa 256 giá trị cho 256 ký tự bảng mã ASCII có đúng không ? Trường hợp mình chỉ dùng biến char cũng chứa 256 giá trị nhưng từ -128 đến 127 thì sao ?
Mong mọi người giúp đỡ. Cảm ơn
Đã được chỉnh sửa lần cuối bởi ductri_vn : 19-11-2012 lúc 10:50 AM. Lý do: Viết sai chính tả :D
Bạn có thể dùng biến kiểu char.Với sẳn đây cho mình hỏi luôn, biến unsigned char chứa 256 giá trị cho 256 ký tự bảng mã ASCII có đúng không ? Trường hợp mình chỉ dùng biến char cũng chứa 256 giá trị nhưng từ -128 đến 127 thì sao ?
Những biến kiểu unsigned ở đầu thì sẽ không có giá trị âm. ví dụ như : unsigned int, unsigned int long, unsigned int long long, unsigned char. Kiểu float, double thì không có usnigned.
C Code:
while (!silly) cout<<"Study everything !";