http://www.gnu.org/software/tar/manual/html_node/tar_119.html#SEC119The fuzz in units can cause problems with relative items. For example, ‘2003-07-31 -1 month’ might evaluate to 2003-07-01, because 2003-06-31 is an invalid date.
Иными словами, если мы имеем значение типа byte, равное 255, прибавляем единицу и получаем все равно 255 - это логично?Автор оригинала: dark-demon
> получается 30 февраля, которое вполне логично преобразовывается в 1 марта.
ни капли не логично. логично - это когда при переполнении значение останавливается на границе.

Не хотелось бы вам огорчать, но мой Pentium именно так и делает с байтовыми переменными.FractalizeR, по твоему логичнее если при _увеличении_ 255 на единицу мы получим ноль?
Если вы не в курсе, так поступают практически все компиляторы. Например, С, С++, Delphi. В худшем случае вы получаете runtime exception если включена проверка на переполнение, но ни один нормальный компилятор не сделает вам так, чтобы 255 + 1 = 255 безо всяких проблем.Автор оригинала: dark-demon
FractalizeR, по твоему логичнее если при _увеличении_ 255 на единицу мы получим ноль?
<?php
$large_number = 2147483647;
var_dump($large_number);
// output: int(2147483647)
$large_number++;
var_dump($large_number);
// output: float(2147483648)
?>
procedure TForm1.Button1Click(Sender: TObject);
var
Test: Byte;
begin
Test := 255;
Inc(Test);
ShowMessage(IntToStr(Test));
end;
using System;
using System.Collections.Generic;
using System.Windows.Forms;
public class MyClass
{
public static void RunSnippet()
{
byte i = 255;
i++;
MessageBox.Show(i.ToString());
}
}


специально для знатоков SSE: у меня SSE4 может быть только на программной эмуляции.специально для знатоков процессоров: архитектура x86 не поддерживает целочисленную арифметику с насыщением. поэтому она реализована в расширениях mmx - sse4