The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Количество цифр в int,long,double, !*! Sasha_Ka, 20-Июл-01, 15:30  [смотреть все]
Здравствуйте, не подскажете есть ли в системе хеадер в котором определен %subj% что то типа limits.h ....  
  • RE: Количество цифр в int,long,double, !*! XMan, 00:03 , 24-Июл-01 (1)
    По идее нет и быть не должно.
    В Linux кажись так:
    int - 32 байта
    long - 64 байта
    double - 10 байт (если правильно помню), но на разных архитектурах может изменяться.
    Связано это с разрядностью регистров процессора и сопроцессора.

  • RE: Количество цифр в int,long,double, !*! Cheshir, 11:54 , 25-Июл-01 (4)
    Народ, че вы издеваетесь над человеком? Все гораздо проще:
    char* c=new char[sizeof(double,int,float - чего хошь)+1(а зачем +1???)]
    • RE: Количество цифр в int,long,double, !*! lexa, 16:20 , 25-Июл-01 (5)
      очень в этом неуверен: например, бывает такое число 65535. Столько тут цифр - прально 5! и массив нать выделить под 6! а если сказать sizeof( int ) - то получим максимум 4! так что неувязочка :(
      p.s. (но в 65535 - эт конечно непредел для int святое дело, но самый простой пример ...)
      • RE: Количество цифр в int,long,double, !*! Cheshir, 12:14 , 26-Июл-01 (7)
        аааа :))) ну так и сразу надо говорить :) я-то другое подумал :))) ну тогда есть маленько иные варианты...

        1) обычно люди не извращаются, делают достаточно ёмкий буфер и после циферок втыкают нолик;

        2) можешь попробовать воспользоваться sprintf - он тебе как надо навыводит, но туда тоже надо длину массива, однако тут можно задать заранее, скока циферок тебе надо;

        3) еще можно немного математики (этот вариант - с целыми, однако могешь испоганить):
        если в библиотеке есть 10-ный логарифм, то так:
        len=log(число)+1;
        если нет, то так:
        len=ln(число)/ln(10)+1;

        Я, правда, обычно пользуюсь 1-м способом, иногда, если с плавающей точкой, вторым :)

  • RE: Количество цифр в int,long,double, !*! Арлекин, 17:46 , 13-Авг-01 (10)
    Коллеги, объясните, для какого такого аппарата пишется упоминаемый софт ?
    Или экономия на каждом байте - пунктик ?
    При правильной организации классов ( С   ) память выделяется и уничтожается по мере необходимости.
    В данном случае почему бы не выделить ну 64 байта, например, и не морочить себе башку ! Ради экономии десятка байт считать логарифмы ????? Увольте !
    Я еще понял бы если это пишется под спецпроцессоры, где памяти всего по 512 байт, но во всех остальных случаях - это программирование ради искусства ( или контрольная работа ).
    Сорри.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру