Size: a a a

2021 January 13

H

Hirrolot in rust_offtopic
а с log могу
источник

CD

Constantine Drozdov in rust_offtopic
если в stdint такого типа нет, ты его не заэмулируешь как надо все равно
источник

H

Hirrolot in rust_offtopic
Hirrolot
бтв эпилепсия это проход в целые числа фиксированной ширины в ANSI C
ANSI C
источник

H

Hirrolot in rust_offtopic
в ANSI C нет stdint
источник

H

Hirrolot in rust_offtopic
typedef unsigned int CONCAT(u, log(2, UINT_MAX);
источник

CD

Constantine Drozdov in rust_offtopic
Hirrolot
в ANSI C нет stdint
ну ты же понимаешь, что складывать умеешь только int-ы и выше, а представление инта не стандартизировано?
источник

CD

Constantine Drozdov in rust_offtopic
uint8 + uint8 это int
источник

H

Hirrolot in rust_offtopic
да, не стандартизировано
источник

H

Hirrolot in rust_offtopic
проеб
источник

CD

Constantine Drozdov in rust_offtopic
результат конверсии обратно в uint8 до поздних не определен
источник

H

Hirrolot in rust_offtopic
хотя даже если int = uint8 + uint8
источник

H

Hirrolot in rust_offtopic
то вс1 равно UINT_MAX тот же
источник

H

Hirrolot in rust_offtopic
другое дело что log(2, UINT_MAX) не обязательно это кол-во бит
источник

CD

Constantine Drozdov in rust_offtopic
Hirrolot
другое дело что log(2, UINT_MAX) не обязательно это кол-во бит
там надо смотреть детали
источник

CD

Constantine Drozdov in rust_offtopic
в 20х плюсах знаю, что integral целочисленный тип это что-то представленное в двоичной системе счисления, состоящее из битов, возможно с паддингом который полностью игнорируется всеми операциями
источник

CD

Constantine Drozdov in rust_offtopic
и тайпкасты определены в смысле добавления/удаления старших битов (арифметическое переполнение только беззнаковое, разумеется)
источник

НТ

Николай Тихонов... in rust_offtopic
Emmanuel Goldstein
Это скомпилируется в что-то типа
func:
    sub rsp, rdi  # выделяем VLA
    # используем VLA
   add rsp, rdi # освободжаем VLA
   ret
HARAM👎👎👎👎

enter
источник

НТ

Николай Тихонов... in rust_offtopic
leave
источник
2021 January 14

CD

Constantine Drozdov in rust_offtopic
Hirrolot
переносимость
В общем, переносимость это наличие отдельной реализации под каждую платформу и вопрос только компилятор ее обеспечивает или ты ручками
источник

НТ

Николай Тихонов... in rust_offtopic
Hirrolot
достаточно лишь вычислить log(2, UINT_MAX)
register uint64_t val = ...;
unsigned n = 0;
while(val>>=1) n++;
источник