💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ دانشجوی سون‌لرن
فرق بین integer‌ها در چه زمان باید از کدوم استفاده کرد
جامعه ASP.NET ایجاد شده در ۲۶ شهریور ۱۴۰۱

لطفا میشه فرق بین int‌ها رو بگین در چه زمانی مثلا باید از int16 یا int64 استفاده کنیممd83a-Screenshot (528).jpg

سلام،

تفاوت اینها در تعداد بیت‌های نگهداری در حافظه رم هست. در برنامه نویسی تمام داده‌ها در مبنای دو داخل بیت‌های صفر و یک نگهداری میشن، دراینجا int16 یعنی از ۱۶ بیت صفرو یک برای نگهداری عدد استفاده میکنه، یک بیت مربوط به علامت در نظر گرفته میشه که مشخص میکنه عدد مثبت هست یا منفی که اصطلاحا میگن داده ی علامت دار signed و پونزده بیت صفرو یک برای نگهداری داده. بیشترین مقدار عدد زمانیه که پونزده خانه مقداریک رو داشته باشن که در مبنای ده میشه عدد 32768.

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

در۶۴ بیتی هک بهمین شکل. یک نوع داده دیگه هم داریم که بدون علامت یا unsigned که دیگه بیت علامت وجود نداره و تمام خونه‌ها بعنوان مقدار عدد در نظر گرفته میشه و از صفر تا مثبت فلان جا میگیره یعنی مثلا int32 میتونه ۳۲ خونه یک بگیره و مقداری که جا میگیره در ظرف از صفر تا مثبت چهار میلیاردو خورده ای خواهد بود.

بهترین پاسخ
محسن موحد ۲۷ شهریور ۱۴۰۱، ۱۵:۵۷