Spec-Zone.ru › GCC 9

4.5 Целые числа

  • Любые расширенные типы целых чисел, существующие в реализации (C99 и C11 6.2.5).

    GCC не поддерживает расширенные типы целых чисел.

  • Способ представления знаковых целых типов с использованием знака и величины, дополнительного кода или обратного кода, а также то, является ли исключительное значение представлением ловушки или обычным значением (C99 и C11 6.2.6.2).

    GCC поддерживает только целочисленные типы с дополнительным кодом, и все битовые шаблоны являются обычными значениями.

  • Ранг любого расширенного целочисленного типа относительно другого расширенного целочисленного типа с такой же точностью (C99 и C11 6.3.1.1).

    GCC не поддерживает расширенные типы целых чисел.

  • Результат или сигнал, генерируемый при преобразовании целого числа в знаковый целочисленный тип, когда значение не может быть представлено в объекте этого типа (C90 6.2.1.2, C99 и C11 6.3.1.3).

    Для преобразования в тип шириной N значение уменьшается по модулю 2^N, чтобы оставаться в диапазоне типа; сигнал не генерируется.

  • Результаты некоторых побитовых операций над знаковыми целыми числами (C90 6.3, C99 и C11 6.5).

    Побитовые операторы действуют на представление значения, включая как знаковые, так и значащие биты, где знаковый бит рассматривается как расположенный непосредственно над битом наибольшего значения. Знаковый оператор «>>» для отрицательных чисел действует с расширением знака.

    В качестве расширения языка C, GCC не использует предоставленную в C99 и C11 свободу для обработки определённых аспектов знакового оператора «<<» как неопределённых. Однако -fsanitize=shift (и -fsanitize=undefined) будут диагностировать такие случаи. Они также диагностируются, когда требуется использование константных выражений.

  • Знак остатка при целочисленном делении (C90 6.3.5).

    GCC всегда следует требованию C99 и C11, что результат деления усекается в сторону нуля.

Далее: Реализация чисел с плавающей точкой, Предыдущее: Реализация символов, Вверх: Реализация C [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.5.0/gcc/Integers-implementation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API