Limit Integer Value
ค่าสูงสุดที่ Integer เก็บได้คือ 32767 เราท่องกันมาแบบนี้ถูกป่ะ ??
แต่รู้มั้ยว่า จริง ๆ แล้วมันคือเท่าไร ??
ค่าของ Integer นั้นจะเปลี่ยนตาม Compiler ที่เราใช้
ซึ่งเมื่อก่อนเราใช้ Turbo C++ กันซะส่วนใหญ่ และสมัย Turbo C++ (น่าจะเมื่อ 10 กว่าปีที่แล้ว)
ค่าของ int คือ 2 byte เท่ากับ 16 bit --> 2^16 = 65535
แบ่งเป็นด้านลบ และ บวก คือ (-32768) - 32767
ดังเช่น ตอนนี้ เราใช้ Dev-C++ หรือ Codeblock สองตัวนี้ไม่ใช่ Compiler นะครับ มันแค่ Editor เท่านั้น
ส่วนตัว Compiler ที่ใช้ใน โปรแกรมสองตัวนี้คือ GNU GCC Compiler
ซึ่งทำให้ int มีขนาด 4 byte นั่นคือ ค่าสูงสุดเพิ่มขึ้นไปอีก...
เท่ากับ 2^32 = 4,294,967,296
เราจะรู้ได้อย่างไร ว่า Integer ของเราเก็บค่าสูงสุดได้เท่าไร ??
ผมก็ไม่รู้หรอกว่า ค่ามันคือเท่าไร
แต่..... เราสามารถเช็คได้จาก
แต่..... เราสามารถเช็คได้จาก
#include <limits.h> หรือในภาษา C++ --> #include <climits>
ค่ามันถูก #define ไว้ชื่อ INT_MAX และ INT_MIN (สำหรับค่าต่ำสุด)
เช่น cout << INT_MAX << endl;
หรือใน ภาษา C++ เราจะ #include <limits> และใช้ว่า
numeric_limits <int> ::min() หรือ max()
เช่น cout << INT_MAX << endl;
หรือใน ภาษา C++ เราจะ #include <limits> และใช้ว่า
numeric_limits <int> ::min() หรือ max()
ค่าที่ได้ขึ้นอยู่กับ Compiler ที่คุณใช้นั่นแหละ ^^~
This comment has been removed by the author.
ReplyDeleteเอ่อ .... ถ้าเป็น limits ของ c++ มันจะอีกอย่างอ่ะ จะเป็น template library แทน ใช้
ReplyDeletenumeric_limits < int > ::min() หรือ max() แทน
limits.h มันกลายเป็น climits ใน header ของ std c++
มีปัญหากับการเขียนเครื่องหมาย < กับ > (น้อยกว่า กับ มากกว่า)
ReplyDelete