Một đố vui nhỏ về C/C++

Như mọi người biết là trong C/C++ có kiểu INT. Một kiểu thay đổi giá trị theo số bit của CPU. (16bit thì 2bytes, 32bit thì 4bytes,…)
Vậy đố mọi người #define INT_MAX sao cho phù hợp với mọi CPU với kết quả luôn đúng :penguin:
(Như CPU 16bit thì trả về ~32k, 32bit thì ~2 tỷ :smile: )

4 Likes

Triệu hồi @ltd

2 Likes

Có thể dùng sizeof để dùng hoặc thông qua dữ liệu khác
#define UINT_MAX ((unsigned int)(~0))
#define INT_MAX ((int)UINT_MAX>>1)

2 Likes

Sizeof(int) được không nhể. Trong C vẫn làm vậy.

2 Likes

Của gió là đúng rồi :))
Hoặc không thì chỉ cần ghi 1 dòng :stuck_out_tongue:

#define INT_MAX (int)(~0U>>1)

‘3’ Vẫn chờ các cách khác.

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