|
А есть ли возможность создать свою переменную размером, 3 байта? |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Jul 13 2011, 15:12
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (smk @ Jul 13 2011, 16:29)  но если сделать на байт короче Зачем на байт? На 15 бит. 16 бит и переполнение как раз 17. На ASM..... QUOTE (smk @ Jul 13 2011, 16:45)  Получим значение приода в мкС. Чтобы узнать частоту делаем 1/Т. Конечно для тиньки такой изврат довольно крут, но всеже нужно попробовать. Изврат в том, что хотите делать это быстро. А это делать быстро совсем не надо - это время по любому завязано на время индикации и соответственно время восприятия человеком, а это время огромное.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 13 2011, 16:38
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Есть ли какой то алгоритм, который позволит изящно сделать такое: Код volatile unsigned long count=100000000; volatile float frq;
frq=((1/count)*100000000); Напрашивающееся математическое упрощение вижу, но это частный случай.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Jul 13 2011, 16:56
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (smk @ Jul 13 2011, 18:38)  Есть ли какой то алгоритм, который позволит изящно сделать такое: volatile unsigned long count=100000000; volatile float frq; frq=((1/count)*100000000); За бездумное использование volatile и float и надо, расстреливать на месяц оставлять без обеда. Непонимание того, что такое целочисленное деление, остаток от деления и того, что 1/10 = 0 лечить учебником арифметики для начальной школы.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 13 2011, 18:53
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (smk @ Jul 13 2011, 19:19)  CODE float 32 от 1E-37 до 1E+37, с точностью не менее 6 значащих десятичных цифр соответственно 0,000000001 вписывается в диапазон. или я не прав? А вода мокрая, 2+2=4, соль соленая.... эти утверждения тоже верны, но ТОЖЕ не имеют никакого отношения к тому, что Вы не знаете арифметики  . Повторяю, если 1 разделить нацело на любое число больше 1 получится 0. Ровно 0. А для полного "счастья", если любое число разделить на 0, то получится фигово. Итого, Ваш частотомер: CODE volatile unsigned long count=100000000; volatile float frq; frq=((1/count)*100000000); сможет показывать 0, 1, и непонятно как, но бесконечность.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 13 2011, 20:10
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Небольшая история из собственной студенческой жизни. Получили на группу из 4 человек систему уравнений с 10 или 12, точно не помню, переменными. Мои приятели, закончили ту же школу, что и известный нам теперь, господин Перельман. Ну, говорят, два пальца ... Решаем с помощью определителей. Достали, для облегчения жизни, калькулятор (на дворе 70-е годы). Засучили рукава и погнали. И очень быстро ушагали в область огромных чисел. Стало не хватать разрядности вычислений, поперли ошибки округления и прочее (это потом стало ясно; калькулятор все это в плавучке ел и цифирки на гора выдавал). Два дня по 12 часов бились, действительно до последних сил. Результат - никакой. Ничего даже близко похожего на правильные цифры.
Позже все сделали методом Гаусса, где такие побочные эффекты просто не проявляются.
Зато получил наглядный урок влияния конечной разрядной сетки на точность вычислений.
А посмотришь, народ то там то сям float, double. Фантастика!
|
|
|
|
|
Jul 14 2011, 06:35
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (sergeeff @ Jul 14 2011, 05:10)  Зато получил наглядный урок влияния конечной разрядной сетки на точность вычислений. Можно подробнее? Или ссылочку в соответствующий справочник) Спасибо) 2 smk: да подлите прямо на Си и все. Зачем мучать себя решением идеи ради идеи?
--------------------
Выбор.
|
|
|
|
|
Jul 14 2011, 08:48
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Цитата(zltigo @ Jul 14 2011, 10:08)  Все хуже  . Вы не поняди, что он он и на 'C' не сумел. При этом зачем-то попытался воспользоваться float и обильно украсил все volatile. После использования float следующим шагом может быть только использование printf(). Хорошо. Пусть я ошибся и ничего не понимаю. Арифметики не знаю. Ну тогда расскажите мне свою идею как зная период в мкС получить значение частоты в формате 0,0000 ? Я действительно не знаю всех тонкостей С.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|