Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

آموزش TypeScript - کار با اعداد

Автор: MicroFrontend

Загружено: 2022-05-14

Просмотров: 378

Описание:

برای درک بهتر این موارد بایستی ابتدا شیوه ذخیره اعداد در کامپیوتر را بررسی نماییم. دو مشخصه مهم Width و Encoding ساختار کلی نوع عدد را تعیین می‌کند. Width تعداد بیت‌هایی که برای نمایش عدد لازم است را مشخص می‌کند که بسیار وابسته به معماری سخت افزاری است و Encoding ساختار این ذخیره سازی را مشخص می‌کند که معمولا به صورت باینری بدون علامت، مکمل دو یا IEEE754 خواهد بود.
اعداد صحیح در TypeScript
در حالت باینری بدون علامت همه بیت‌های در نظر گرفته شده برای عدد رزرو می‌شد. این روش فقط مناسب اعداد صحیح است و اگر نیاز به ذخیره اعداد علامت دار داشته باشیم بایستی از روش مکمل دو استفاده کنیم در این روش یک بیت برای علامت رزرو می‌شود و ۱ به معنی منفی و ۰ به معنی مثبت است. اگر عدد مثبت باشد به همان روش باینری ذخیره می‌شود و اگر منفی باشد مکمل دو آن عدد ذخیره می‌شود.
چالش زمانی بوجود می‌آید که نتیجه محاسبات بزرگتر یا کوچکتر از width شود که به آن به ترتیب overflow و underflow می‌گوییم. برای حل این معضل سه روش معمولا در زبان‌های برنامه نویسی به کار گرفته می‌شود:
روش Wrap Around که در واقع بیت های اضافی حذف می‌شوند به عنوان مثال اگر نتیجه محاسبه ای ۱۰۰۰۰ شود که بیت آخر اضافی باشد ۱ حذف می‌شود و عملا عدد صفر می‌شود. این روش پر استفاده ترین و خطرناک ترین روش است.
روش اشباع یا saturation که در آن به مانند فیزیک یک مقدار به عنوان حداقل و حداکثر تعیین می‌شود و اگر نتیجه محاسبات از آن ها عبور کند حداقل یا حداکثر به جای آن در نظر گرفته می‌شود.
روش خطا یا error out مطمن ترین و پرهزینه ترین روش است. در این حالت اگر مقدار از حداکثر یا حداقل فراتر رود خطا اعلام می‌شود. هزینه این رویکرد در آن است که به ازای هر محاسبه این چک باید انجام شود.

اعداد اعشاری در TypeScript
استاندارد و انکودینگ IEEE 754 برای ذخیره اعداد به صورت ممیز شناور معرفی شده است و در جاوا اسکریپت و به طبع آن در TypeScript از فرمت binary64 این encoding برای همه اعداد استفاده می‌شود که شامل سه مولفه اصلی یک بیت علامت، ۱۱ بیت نما و ۵۲ بیت مانتیس است. نکته مهمی که باید در مورد این فرمت بخاطر داشت این است که چون یک الگوریتم فشرده سازی نیز هست، هدف ذخیره تا حد امکان عدد برزگتر در فضای محدود است و سعی می‌کند قسمت اعشار را round کند بر این اساس ممکن است بخشی از دقت بدلیل خطای rounding از بین برود.
در چنین شرایطی اگر نیاز به دقت بالا در محاسبات داشته باشیم بهتر است که قسمت اعشار و قسمت صحیح را جداگانه به‌صورت صحیح ذخیره کنیم.
در مورد اعداد صحیح چنانچه عدد بسیار بزرگ شود نیز ممکن است rounding اتفاق بیافتد که با متد Number.isSafeInteger برای چک کردن این مورد استفاده می‌شود
مقایسه اعداد ممیز شناور
بدلیل خطای rounding، به شکل کلی مقایسه برابری اعداد ممیز شناور یا اعشاری ممکن است ایده خوبی نباشد، راه بهتر این است که بگویم دو مقدار تقریبا یکی هستند. برای این کار بایستی حداکثر خطای ممکن در rounding را که مرتبط به encoding است و آن را machine epsilon می‌گویند بدانیم و آن را به عنوان حد آستانه تقریب در نظر بگیرم. برای دسترسی به این مقدار در JavaScript از Number.EPSILON استفاده میکنیم که کوچکترین عدد بزرگتر از یک تفسیر می‌شود. با این اوصاف می‌توان از کد زیر برای مقایسه اعداد ممیز شناور استفاده کرد.

00:00 مقدمه
01:36 نوع عدد و ویژگی‌های آن در زبان‌های برنامه نویسی
02:57 Unsigned Binary
03:30 روش ذخیره سازی مکمل دو
04:01 مدیریت overflow و underflow
05:45 مدیریت دستی overflow و underflow
08:35 اعداد اعشاری در زبان های برنامه نویسی - ieee 754
12:13 مقایسه اعداد اعشاری در typescript

آموزش TypeScript - کار با اعداد

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

نوع داده boolean  در TypeScript

نوع داده boolean در TypeScript

TypeScript چیست؟ چرا تایپ اسکریپت‌ ؟

TypeScript چیست؟ چرا تایپ اسکریپت‌ ؟

«۳ نوع عملگر  در جاوااسکریپت که همه اشتباه 😱می‌گیرن!

«۳ نوع عملگر در جاوااسکریپت که همه اشتباه 😱می‌گیرن!

آموزش GO - کار با Slice و نکته‌های آن

آموزش GO - کار با Slice و نکته‌های آن

آموزش TypeScript

آموزش TypeScript

آموزش جامع کوبرنتیز (Kubernetes) - قسمت ۴: ساخت اولین Pod

آموزش جامع کوبرنتیز (Kubernetes) - قسمت ۴: ساخت اولین Pod

Путин теряет влияние на СНГ?

Путин теряет влияние на СНГ?

آموزش GO

آموزش GO

Самый короткий тест на интеллект Задача Массачусетского профессора

Самый короткий тест на интеллект Задача Массачусетского профессора

25 Запрещенных Гаджетов, Которые Вы Можете Купить Онлайн

25 Запрещенных Гаджетов, Которые Вы Можете Купить Онлайн

آموزش GO - نوع داده map و نکته‌های آن

آموزش GO - نوع داده map و نکته‌های آن

Для Чего РЕАЛЬНО Нужен был ГОРБ Boeing 747?

Для Чего РЕАЛЬНО Нужен был ГОРБ Boeing 747?

ОБЫЧНЫЙ VPN УМЕР: Чем обходить блокировки в 2026

ОБЫЧНЫЙ VPN УМЕР: Чем обходить блокировки в 2026

Я Построил Рогатку Более Мощную, чем Пистолет

Я Построил Рогатку Более Мощную, чем Пистолет

Визуализация гравитации

Визуализация гравитации

آموزش برنامه نویسی به زبان GO

آموزش برنامه نویسی به زبان GO

Я НЕ ОЖИДАЛ ТАКОГО РЕЗУЛЬТАТА! Варка стекла из песков с разных пляжей - что получится?!

Я НЕ ОЖИДАЛ ТАКОГО РЕЗУЛЬТАТА! Варка стекла из песков с разных пляжей - что получится?!

ВОЙНА ИЗ ПОСЛЕДНИХ СИЛ. БЕСЕДА С ИГОРЕМ ЛИПСИЦЕМ @IgorLipsits_1950

ВОЙНА ИЗ ПОСЛЕДНИХ СИЛ. БЕСЕДА С ИГОРЕМ ЛИПСИЦЕМ @IgorLipsits_1950

Как Россия учится летать на старых самолетах

Как Россия учится летать на старых самолетах

آموزش برنامه نویسی به زبان GO - Performance

آموزش برنامه نویسی به زبان GO - Performance

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: infodtube@gmail.com