• Задача
  • Решение
  • Обсуждение

Когда int8 слишком маленький, чтобы быть безопасным

int8 — малыш среди числовых типов: всего 8 бит, диапазон от -128 до 127. Он такой крошечный, что любое слишком большое число может его «сломать».

Напишите функцию, которая выполняет безопасное сложение для ште8:

  • Если сумма помещается в тип — возвращаем результат и true.
  • Если сумма выходит за пределы диапазона — возвращаем 0, false.

go

package main

func AddInt8(a, b int8) (int8, bool) {
sum := int16(a) + int16(b) // Преобразуем в int16, чтобы избежать переполнения
if sum < -128 || sum > 127 {
return 0, false // Переполнение произошло
}
return int8(sum), true // Всё безопасно
}

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

00:00:00