|
почему так?
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, а вы запускали бесконечное число раз, чтобы утверждать обратное? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 17:42 |
|
почему так?
|
|||
---|---|---|---|
#18+
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; ... } ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 17:44 |
|
почему так?
|
|||
---|---|---|---|
#18+
бабушкин зайчик а вы запускали бесконечное число раз, чтобы утверждать обратное? В отличие от вашей гипотезы, мое утверждение прямо следует из стандарта С/С++, и не нуждается в доказательстве. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 18:04 |
|
почему так?
|
|||
---|---|---|---|
#18+
бабушкин зайчик, фикс размеры ввели для кроссплатформенности и независимости от компиляторов допустим int может быть >16 бит в зависимости от компилятора/архитектуры компьютера ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 18:06 |
|
почему так?
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky бабушкин зайчик а вы запускали бесконечное число раз, чтобы утверждать обратное? В отличие от вашей гипотезы, мое утверждение прямо следует из стандарта С/С++, и не нуждается в доказательстве. однако противоречит реальности ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 21:17 |
|
почему так?
|
|||
---|---|---|---|
#18+
Alex_Ustinov бабушкин зайчик, фикс размеры ввели для кроссплатформенности и независимости от компиляторов допустим int может быть >16 бит в зависимости от компилятора/архитектуры компьютера short вы имели ввиду ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 21:18 |
|
почему так?
|
|||
---|---|---|---|
#18+
бабушкин зайчик Alex_Ustinov бабушкин зайчик, фикс размеры ввели для кроссплатформенности и независимости от компиляторов допустим int может быть >16 бит в зависимости от компилятора/архитектуры компьютера short вы имели ввиду Оба. [[un]signed] sort [int] -> at least 16 [[un]signed] int -> at least 16 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 22:00 |
|
почему так?
|
|||
---|---|---|---|
#18+
Есть хороший английский анекдот на тему сломанных стрелочных часов. Которые дважды в сутки внезапно показывают точное время. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2021, 22:36 |
|
почему так?
|
|||
---|---|---|---|
#18+
бабушкин зайчик Вообще говорят, что int8_t и uint8_t - это std:: или наоборот int - типизирован вручную... я запутался Можно просто взять и посмотреть stdint.h У меня в MSVC так написано Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 08:21 |
|
почему так?
|
|||
---|---|---|---|
#18+
ъъъъъ бабушкин зайчик пропущено... short вы имели ввиду Оба. [[un]signed] sort [int] -> at least 16 [[un]signed] int -> at least 16 если смотреть в stdint.h, то там int может быть и 8 но по-хорошему он всё таки от 32 должен начинаться ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 10:58 |
|
почему так?
|
|||
---|---|---|---|
#18+
бабушкин зайчик но по-хорошему Это как? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 11:09 |
|
почему так?
|
|||
---|---|---|---|
#18+
бабушкин зайчик, ярчайший пример Undefined Behavior при использовании никем не инициализированных данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 11:34 |
|
почему так?
|
|||
---|---|---|---|
#18+
Потому что экземпляр структуры на стеке, а на стеке может быть всё, что угодно, так как он используется процедурами инициализации статических объектов и объектов на стеке (в неименованых или анонимных пространствах имён единиц компиляции) ещё до начала main(). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 11:38 |
|
почему так?
|
|||
---|---|---|---|
#18+
бабушкин зайчик ъъъъъ пропущено... Оба. [[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 и больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 12:36 |
|
почему так?
|
|||
---|---|---|---|
#18+
Dima T бабушкин зайчик пропущено... если смотреть в stdint.h, то там int может быть и 8 но по-хорошему он всё таки от 32 должен начинаться Так исторически сложилось что изначально int был 16 бит на 16-битных системах, потом появились 32-битные, там int стал 32. Поэтому от 16 и больше. А на восьмибитных системах Си не было? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 12:59 |
|
почему так?
|
|||
---|---|---|---|
#18+
petrav Dima T пропущено... Так исторически сложилось что изначально int был 16 бит на 16-битных системах, потом появились 32-битные, там int стал 32. Поэтому от 16 и больше. А на восьмибитных системах Си не было? Если не путаю, до 16-битных не было ни ОС, ни компиляторов, в машинных кодах писали, на перфокартах и т.п. 8-битная это же всего 256 байт адресуемой памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 13:06 |
|
почему так?
|
|||
---|---|---|---|
#18+
Dima T petrav пропущено... А на восьмибитных системах Си не было? Если не путаю, до 16-битных не было ни ОС, ни компиляторов, в машинных кодах писали, на перфокартах и т.п. 8-битная это же всего 256 байт адресуемой памяти. Z80 — восьмибитный процессор. Там были интерпретаторы, компиляторы и ОС. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 13:30 |
|
почему так?
|
|||
---|---|---|---|
#18+
petravZ80 — восьмибитный процессор. Это не мешало ему иметь 16-ти разрядные регистры и арифметику. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 13:35 |
|
почему так?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravZ80 — восьмибитный процессор. Это не мешало ему иметь 16-ти разрядные регистры и арифметику. Тут написано , что разрядность регистров 8-мь бит. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 13:40 |
|
почему так?
|
|||
---|---|---|---|
#18+
petrav Dima T пропущено... Если не путаю, до 16-битных не было ни ОС, ни компиляторов, в машинных кодах писали, на перфокартах и т.п. 8-битная это же всего 256 байт адресуемой памяти. Z80 — восьмибитный процессор. Там были интерпретаторы, компиляторы и ОС. Не знаю почему он считается 8-мибитным, когда там было 16-битное адресное пространство и команды для операций над двухбайтными (16 бит) операндами, правда операнд писался в два регистра и регистры парами работали. https://studwood.ru/1676524/informatika/sistema_komand_protsessora ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 13:42 |
|
почему так?
|
|||
---|---|---|---|
#18+
petravТут написано, что разрядность регистров 8-мь бит. А если почитать оригинал , то будет видно гораздо лучше. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 13:59 |
|
почему так?
|
|||
---|---|---|---|
#18+
Dima T petrav пропущено... Z80 — восьмибитный процессор. Там были интерпретаторы, компиляторы и ОС. Не знаю почему он считается 8-мибитным, когда там было 16-битное адресное пространство и команды для операций над двухбайтными (16 бит) операндами, правда операнд писался в два регистра и регистры парами работали. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 14:29 |
|
почему так?
|
|||
---|---|---|---|
#18+
Этот термин "битность" (по отношению к процессорам) - злая маркетинговая уловка. Мы только запутаемся обсуждая его. Наверное лучше от него уйти и говорить об архитектурах типа там IA-64. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 15:23 |
|
почему так?
|
|||
---|---|---|---|
#18+
Как выяснилось битность процессора и битность типа int это разные параметры, нет смысла обсуждать первое. А int, как понимаю, изначально имел размер самого большого операнда, с которым позволял работать процессор. Во времена появления С это было 16 бит. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2021, 15:32 |
|
|
start [/forum/topic.php?fid=57&msg=40080730&tid=2017196]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 240ms |
total: | 373ms |
0 / 0 |