Sử dụng thư viện cstdint

INT8_MIN có thể định nghĩa là (char) -128 :smiley:cout với char thì lại in ra kí tự luôn chứ ko in ra code (tức là con số).

4 Likes

Cái UINT8_MAX là 256 có thuộc bảng mã ASCII đâu bạn, mã tới 127 thôi. Mình vẫn chưa hiểu cái này.

http://www.asciitable.com/
extend

nó có thuộc cái extended ascii đây :V

ban đầu ASCII chỉ có 7-bit, nhưng kiểu char có 8-bit, thành ra dư 128 giá trị :V Dần dà người ta tìm cách sử dụng luôn 128 giá trị dư ra này, nhưng mỗi nước lại gán 128 giá trị đó cho 1 ký tự khác nhau :V :V :V Chỉ có 7-bit đầu tiên (giá trị 0-127) là có chuẩn, còn 128 giá trị thêm vào thì ko có quy chuẩn nào hết, mỗi nước mỗi khác :V Ví dụ cái hình trong wiki thì giá trị 255 lại là ÿ, còn cái hình của trang asciitable.com lại là khoảng trắng (no-break space, alt code là alt+255 :V)

edit: code page hiện tại của em chắc đang là 437 :V em thử chạy chcp 1252 rồi chạy lại chương trình của em sẽ thấy nó hiện UINT8_MAX là ÿ :V

edit: em muốn in ra giá trị thì cast nó về int: (int)INT8_MAX(int)UINT8_MAX

edit: lỗi chắc là ở ông MSVC :V Đa số người ta define INT8_MAX là 127 hoặc 0x7f, UINT8_MAX là 255 hoặc 0xff, còn ông MSVC thì đi gán là 127i80xffui8 @_@ nên mới bị cast về charunsigned char như thế kia, mấy trình dịch khác như mingw toàn in ra số :V

3 Likes

A post was split to a new topic: Cài đặt C++99 hoặc C++11 mode ở VS Code

sao lại đặt kiểu dữ liệu biến chi tiết đến vậy ad ơi , em chỉ dùng mỗi int , double, long , float thấy cũng chả có vấn đề gì

Vì dùng kiểu này không cần biết long là mấy byte cứ thế mà dịch :smiley:

Thật ra kích thước các kiểu nguyên không giống nhau giữa các trình biên dịch, ban đầu không muốn siết lại để chương trình phù hợp với một kiến trúc cụ thể.

4 Likes

cảm ơn nhé ,


như này là sao ạ max nó hiện ký tự đặc biệt á

uint8_t tức là char:smiley: ép sang unsigned int thôi. (vì unsigned int chắc chắn tồn tại)

2 Likes

hỏi

Em chào anh chị.
Anh chị có thể giải thích cho em sao mình phải gán min_value = MAX và max_value = MIN vậy ạ .
Em đọc hoài mà vẫn không hiểu .
Em cảm ơn mọi người.

Để đảm bảo lấy được đúng giá trị nhỏ nhất và lớn nhất.

1 Like

dạ em vẫn không hiểu tại sao phải vậy

Hãy suy nghĩ ngược lại, vậy theo bạn thì nên khởi tạo giá trị nào cho min_valuemax_value? Hay là không gán gì cả (vậy thì min_value, max_value là bao nhiêu?)? Rồi lấy 1 vài ví dụ cụ thể để xem có gì xảy ra không?

Spoiler

Đọc kỹ là thấy có giải thích sẵn trong bài gốc rồi…

2 Likes

Em hiểu rồi. Em cảm ơn ạ

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