Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Вот получше. Генератор таблицы упакованных тетрад MN >>

Отправлено VasilyS (80.92.96.25) 30 ноября 2010, г. 17:35
В ответ на: Вывожу максимальный из множителей. В "комплементарной" переменной - второй сомножитель. отправлено VasilyS 30 ноября 2010, г. 15:37


char ma=0, mb=0;
void find_min_err( int gain ){
int a,b;
int err=32767;
for(a=1;a<16;a++){
for(b=0;b<16;b++){
if((a*b)>gain ) continue;
else{
if((gain-(a*b))<=err){
err = (gain-(a*b));
ma=(char)((a>=b)?(a):(b));
mb=(char)((a<=b)?(a):(b));
}}}}}
void NOD( unsigned int gain ){
if(gain < 16)
printf("0x%02x ",gain);
else if(gain == 16)
printf("0x%02x ",0x0f);
else {
find_min_err(gain+1);
ma-=((gain<226) ?(1):(0));
mb-=((gain==255)?(0):(1));
if(ma>=mb) {ma=((mb<<4)|ma);}
else {ma=((ma<<4)|mb);}
printf("0x%02x ",ma);
}
}
void main(void){
unsigned int x;
for( x=0; x<256; x++){
NOD(x);
if((x&0x0f)==0x0f)
printf("\n");
}
}


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 34:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru