Ответы пользователя по тегу Типы данных
  • Почему boolean использует больше памяти чем byte?

    mayton2019
    @mayton2019
    Bigdata Engineer
    С точки зрения ассемблера - удобнее делать операции над целым числом (DWORD) 32bit. Он - же int.
    В масштабах современной памяти - безразлично выделять 1 байт или 4 байта. Все равно
    другие структуры больше захватят тысячекратно. А простота компилируемого кода - здесь важнее.

    Вот поэтому компилляторы и собирают boolean в int. А язык С++ позволяет проводить аналогии
    между int и boolean. В зависимости от контекста число может быть как числом так и логической
    величиной. (Тесная связь с ассемблером да).

    А если речь допустим идет о массиве boolean - тогда смысл в экономии есть. В Java например
    такой массив действительно будет использовать биты внутри байта.

    В базах данных например (Oracle) вообще нет булевого типа с точки зрения хранения. Там предлагают
    символьный тип 'Y' или 'N'. Это связано с дисковыми структурами хранения данных в datarow.

    Поэтому sizeof(булевый тип) будет всегда парадоксом в разных системах программирования и языках.
    Как компиллятору удобнее так и соберет.
    Ответ написан
    Комментировать
  • В чем отличие float/double и decimal?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Там - простое правило. Для денег - бери decimal. Всегда бери.

    А для научных расчетов (там где копейка в младшем разряде роли не играет) - бери float/double.
    Отличаются они разрядностью. Если экономить надо (матрицы чисел) - то бери float (32 bit).
    Если просто нужна вещественная величина в переменной - то бери сразу double. Никто не будет
    возражать.
    Ответ написан
    Комментировать
  • Можно ли считать словарь Python базой данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я предлагаю словарь Python все таки оставить словарем и не искать натянутых аналогий. База данных (в общем понимании этого слова) это RDBMS с поддержкой ACID.

    В противном случае, и ощипанный петух будет человеком.
    Ответ написан
    Комментировать