powered by simpleCommunicator - 2.0.47     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / почему так?
25 сообщений из 79, страница 2 из 4
почему так?
    #40080571
Anatoly Moskovsky, а вы запускали бесконечное число раз, чтобы утверждать обратное?
...
Рейтинг: 0 / 0
почему так?
    #40080572
Dima T
бабушкин зайчик
пропущено...

насколько я понимаю, int и short - это некие базовые типы, которые аж в процессоре зашиты
а int8_t - это уже класс в C++
и выдаёт он пустышки

int8_t тоже базовый, usigned chаr, это не класс.
short - это int16_t
int - int32_t

И про выравнивание ты забыл, почитай эту статью .

а зачем тогда есть short И int16_t ?
Вообще говорят, что int8_t и uint8_t - это std::
или наоборот int - типизирован вручную... я запутался
авторКороткий ответ: int8_t является signed char на самых популярных платформах (GCC/Intel/Clang на Linux и Visual Studio для Windows), но может быть что-то еще в других.
Header [<cstdint>] определяет все функции, типы и макросы такими же, как 7.18 в C99.

А C99 7.18 гласит: typedef name intN_t обозначает знаковый целочисленный тип с шириной N, без битов дополнений и двухкомпонентное представление.
Таким образом, int8_t обозначает знаковый целочисленный тип с шириной ровно 8 бит.

Рабочий черновик проекта I, N3376, указывает в [cstdint.syn] § 18.4.1, что типы int типично типизированы:
namespace std {
typedef signed integer type int8_t; // optional
typedef signed integer type int16_t; // optional
typedef signed integer type int32_t; // optional
typedef signed integer type int64_t; // optional
typedef signed integer type int_fast8_t;
typedef signed integer type int_fast16_t;
...
}
...
Рейтинг: 0 / 0
почему так?
    #40080584
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
а вы запускали бесконечное число раз, чтобы утверждать обратное?

В отличие от вашей гипотезы, мое утверждение прямо следует из стандарта С/С++, и не нуждается в доказательстве.
...
Рейтинг: 0 / 0
почему так?
    #40080585
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик,

фикс размеры ввели для кроссплатформенности и независимости от компиляторов
допустим int может быть >16 бит в зависимости от компилятора/архитектуры компьютера
...
Рейтинг: 0 / 0
почему так?
    #40080609
Anatoly Moskovsky
бабушкин зайчик
а вы запускали бесконечное число раз, чтобы утверждать обратное?

В отличие от вашей гипотезы, мое утверждение прямо следует из стандарта С/С++, и не нуждается в доказательстве.

однако противоречит реальности
...
Рейтинг: 0 / 0
почему так?
    #40080610
Alex_Ustinov
бабушкин зайчик,

фикс размеры ввели для кроссплатформенности и независимости от компиляторов
допустим int может быть >16 бит в зависимости от компилятора/архитектуры компьютера

short вы имели ввиду
...
Рейтинг: 0 / 0
почему так?
    #40080616
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бабушкин зайчик
Alex_Ustinov
бабушкин зайчик,

фикс размеры ввели для кроссплатформенности и независимости от компиляторов
допустим int может быть >16 бит в зависимости от компилятора/архитектуры компьютера

short вы имели ввиду


Оба.
[[un]signed] sort [int] -> at least 16
[[un]signed] int -> at least 16
...
Рейтинг: 0 / 0
почему так?
    #40080619
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть хороший английский анекдот на тему сломанных стрелочных часов. Которые дважды
в сутки внезапно показывают точное время.
...
Рейтинг: 0 / 0
почему так?
    #40080646
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
Вообще говорят, что int8_t и uint8_t - это std::
или наоборот int - типизирован вручную... я запутался

Можно просто взять и посмотреть stdint.h
У меня в MSVC так написано
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
typedef signed char        int8_t;
typedef short              int16_t;
typedef int                int32_t;
typedef long long          int64_t;
typedef unsigned char      uint8_t;
typedef unsigned short     uint16_t;
typedef unsigned int       uint32_t;
typedef unsigned long long uint64_t;
...
...
Рейтинг: 0 / 0
почему так?
    #40080663
ъъъъъ
бабушкин зайчик
пропущено...

short вы имели ввиду


Оба.
[[un]signed] sort [int] -> at least 16
[[un]signed] int -> at least 16

если смотреть в stdint.h, то там int может быть и 8
но по-хорошему он всё таки от 32 должен начинаться
...
Рейтинг: 0 / 0
почему так?
    #40080666
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бабушкин зайчик
но по-хорошему

Это как?
...
Рейтинг: 0 / 0
почему так?
    #40080670
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик, ярчайший пример Undefined Behavior при использовании никем не инициализированных данных.
...
Рейтинг: 0 / 0
почему так?
    #40080672
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что экземпляр структуры на стеке, а на стеке может быть всё, что угодно, так как он используется процедурами инициализации статических объектов и объектов на стеке (в неименованых или анонимных пространствах имён единиц компиляции) ещё до начала main().
...
Рейтинг: 0 / 0
почему так?
    #40080686
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
ъъъъъ
пропущено...


Оба.
[[un]signed] sort [int] -> at least 16
[[un]signed] int -> at least 16

если смотреть в stdint.h, то там int может быть и 8
но по-хорошему он всё таки от 32 должен начинаться

Так исторически сложилось что изначально int был 16 бит на 16-битных системах, потом появились 32-битные, там int стал 32. Поэтому от 16 и больше.
...
Рейтинг: 0 / 0
почему так?
    #40080690
DHDD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поиграться:

https://onlinegdb.com/xmp6Prn05
...
Рейтинг: 0 / 0
почему так?
    #40080692
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
бабушкин зайчик
пропущено...

если смотреть в stdint.h, то там int может быть и 8
но по-хорошему он всё таки от 32 должен начинаться

Так исторически сложилось что изначально int был 16 бит на 16-битных системах, потом появились 32-битные, там int стал 32. Поэтому от 16 и больше.

А на восьмибитных системах Си не было?
...
Рейтинг: 0 / 0
почему так?
    #40080694
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Dima T
пропущено...

Так исторически сложилось что изначально int был 16 бит на 16-битных системах, потом появились 32-битные, там int стал 32. Поэтому от 16 и больше.

А на восьмибитных системах Си не было?

Если не путаю, до 16-битных не было ни ОС, ни компиляторов, в машинных кодах писали, на перфокартах и т.п. 8-битная это же всего 256 байт адресуемой памяти.
...
Рейтинг: 0 / 0
почему так?
    #40080699
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
petrav
пропущено...

А на восьмибитных системах Си не было?

Если не путаю, до 16-битных не было ни ОС, ни компиляторов, в машинных кодах писали, на перфокартах и т.п. 8-битная это же всего 256 байт адресуемой памяти.

Z80 — восьмибитный процессор. Там были интерпретаторы, компиляторы и ОС.
...
Рейтинг: 0 / 0
почему так?
    #40080700
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravZ80 — восьмибитный процессор.

Это не мешало ему иметь 16-ти разрядные регистры и арифметику.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
почему так?
    #40080702
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravZ80 — восьмибитный процессор.

Это не мешало ему иметь 16-ти разрядные регистры и арифметику.

Тут написано , что разрядность регистров 8-мь бит.
...
Рейтинг: 0 / 0
почему так?
    #40080703
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Dima T
пропущено...

Если не путаю, до 16-битных не было ни ОС, ни компиляторов, в машинных кодах писали, на перфокартах и т.п. 8-битная это же всего 256 байт адресуемой памяти.

Z80 — восьмибитный процессор. Там были интерпретаторы, компиляторы и ОС.

Не знаю почему он считается 8-мибитным, когда там было 16-битное адресное пространство и команды для операций над двухбайтными (16 бит) операндами, правда операнд писался в два регистра и регистры парами работали.

https://studwood.ru/1676524/informatika/sistema_komand_protsessora
...
Рейтинг: 0 / 0
почему так?
    #40080706
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravТут написано, что разрядность регистров 8-мь бит.

А если почитать оригинал , то будет
видно гораздо лучше.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
почему так?
    #40080710
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
petrav
пропущено...

Z80 — восьмибитный процессор. Там были интерпретаторы, компиляторы и ОС.

Не знаю почему он считается 8-мибитным, когда там было 16-битное адресное пространство и команды для операций над двухбайтными (16 бит) операндами, правда операнд писался в два регистра и регистры парами работали.
Потому что битность процессора это не размер его регистров, а размер шины данных (data bus). Сколько бит за раз можно послать в процессор и прочитать из него. Размер регистров и адресной шины тут не так важен.
...
Рейтинг: 0 / 0
почему так?
    #40080730
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот термин "битность" (по отношению к процессорам) - злая маркетинговая уловка. Мы только запутаемся обсуждая его.

Наверное лучше от него уйти и говорить об архитектурах типа там IA-64.
...
Рейтинг: 0 / 0
почему так?
    #40080737
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как выяснилось битность процессора и битность типа int это разные параметры, нет смысла обсуждать первое. А int, как понимаю, изначально имел размер самого большого операнда, с которым позволял работать процессор. Во времена появления С это было 16 бит.
...
Рейтинг: 0 / 0
25 сообщений из 79, страница 2 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / почему так?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]