فرق بین integerها در چه زمان باید از کدوم استفاده کرد
ایجاد شده در ۲۶ شهریور ۱۴۰۱
لطفا میشه فرق بین intها رو بگین در چه زمانی مثلا باید از int16 یا int64 استفاده کنیمم
سلام،
تفاوت اینها در تعداد بیتهای نگهداری در حافظه رم هست. در برنامه نویسی تمام دادهها در مبنای دو داخل بیتهای صفر و یک نگهداری میشن، دراینجا int16 یعنی از ۱۶ بیت صفرو یک برای نگهداری عدد استفاده میکنه، یک بیت مربوط به علامت در نظر گرفته میشه که مشخص میکنه عدد مثبت هست یا منفی که اصطلاحا میگن داده ی علامت دار signed و پونزده بیت صفرو یک برای نگهداری داده. بیشترین مقدار عدد زمانیه که پونزده خانه مقداریک رو داشته باشن که در مبنای ده میشه عدد 32768.
یک بیت هم علامت پس شما در int16 عددی بین مثبت ۳۲۷۶۸ تا منفی ۳۲۷۶۸ نگه دارید و مقدار بیشتر اصطلاحا overflow میشه و در این ظرف جا نمیگیره. حالا int32 در حالت signed میتونه عددی بین مثبت دو میلیاردو خورده ای تا منفی دو میلیاردو خورده ای جا بگیره چون بیشترین حالتش زمانیه که ۳۱ خونه مقدار یک بگیره و خونه آخر هم بیت علامت.
در۶۴ بیتی هک بهمین شکل. یک نوع داده دیگه هم داریم که بدون علامت یا unsigned که دیگه بیت علامت وجود نداره و تمام خونهها بعنوان مقدار عدد در نظر گرفته میشه و از صفر تا مثبت فلان جا میگیره یعنی مثلا int32 میتونه ۳۲ خونه یک بگیره و مقداری که جا میگیره در ظرف از صفر تا مثبت چهار میلیاردو خورده ای خواهد بود.