Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

малко помощ за %опция на printf() AVR GCC?
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=6130
Страница 1 от 1

Автор:  Ники [ Нед Сеп 28, 2008 2:01 pm ]
Заглавие:  малко помощ за %опция на printf() AVR GCC?

ползвам следния код, за да покажа 6 знака от tmp(три байта), т.е. в изхода искам '654321', но излизат 8 знака, забелязах също че ако стойността на променливата tmp е по-малка от вместващата се в три байта, си излизат 6 знака но стане ли по-голяма от 3 байта, излизат повече знаци:

uint32_t tmp=0x87654321;
printf("%06lX",tmp);// между 6 и Х е малко 'L'

имам ли грешка или пропуск заради който се получават 8 вместо 6 знака в изхода, в настоящия случай?

Автор:  woody [ Нед Сеп 28, 2008 3:53 pm ]
Заглавие:  Re: малко помощ за %опция на printf() AVR GCC?

Ники написа:
ползвам следния код, за да покажа 6 знака от tmp(три байта), т.е. в изхода искам '654321', но излизат 8 знака, забелязах също че ако стойността на променливата tmp е по-малка от вместващата се в три байта, си излизат 6 знака но стане ли по-голяма от 3 байта, излизат повече знаци:

uint32_t tmp=0x87654321;
printf("%06lX",tmp);// между 6 и Х е малко 'L'

имам ли грешка или пропуск заради който се получават 8 вместо 6 знака в изхода, в настоящия случай?


uint32_t tmp=0x87654321;
printf("%06lX",tmp & 0xFFFFFF);// между 6 и Х е малко 'L'

Автор:  Ники [ Пон Сеп 29, 2008 11:26 am ]
Заглавие: 

грешката ми е, че се бях вторачил във форматиращите опции, и чаках от там да изкочи зайчето.
Благодаря за подсещането!

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/