Převod byte na bin pro mikroC PRO for PIC

Zdravím
Jeden dobrodinec na podobném fóru jako je tento, poskytl tento převod byte - 8 bitů na bin ale já bych potřeboval aby to převedlo 16 bitů.

[code]
void byte_to_bin(unsigned char a, char *str)
{
char b;

for (b = 0b10000000; b > 0; b >>= 1) {
*str++ = a & b ? ‘1’ : ‘0’;
}
str = ‘\0’;
}

void main(void)
{

unsigned char a;
char str[9];

a = 253;
byte_to_bin(a, str);
printf(str);
} [/code]
Zkoušel jsem vše co mě napadlo

char str[16];
(b = 0b100000000000000

a nic můžete mi poradit jak to upravit?
díky

To jsi se asi moc nesnažil, co ? Tohle bych řekl, že je celkem dost triviální záležitost.

3 malé nápovědy :

  1. z char nikdy 16 bitů nedostaneš …
  2. Ve funkci byte_to_bin stačí upravit 3 místa. Přejmenování funkce na word_to_bin do toho nepočítám.
  3. 16 znaků dlouhý řetězec se Ti do char str[16]; nevejde.

Jen nevím, na co Ti bude teplota z čidla v textu v binárním tvaru …

Jenže on zde vůbec neuvedl co a proč dělá, takže je taky možný že to potřebuje např. do BCD a ani o tom neví. V minulém vlákně to chtěl odesílat přes COM port (takže nejspíš do ASCII) a ani tam si s tím neporadil, notabene když na to stačí úplně jednoduchý cyklus, tady píše že zkusil všechno co ho napadlo - někdy je lepší zkusit Google a / nebo to, co už napadlo někoho jiného. Navíc mám takovej pocit (třeba se pletu), že si v tom čidle ani neumí správně spustit převod, tahle otázka zůstala v minulém vlákně jaksi nakousnutá a ne úplně dořešená - takže co přesně a odkud chce vlastně načítat, převádět a kde na čem to chce zobrazovat?

Já vím že se strapnuji která to jsou? díky :blush:
na Cečku jsem nebyl vychován

Na céčku jsi nebyl vychován ? Sorry, ale vidím to tak, že si nebyl vychován myslet :wink:

V tom by Ti mohl poradit tenhle bod :

  1. z char nikdy 16 bitů nedostaneš …

Smozřejmĕ vím že typ char má jen 8 bitů ale nĕco jako typ word který má 16 bitů tam není ? nebo typ word je s jiného programovacího jazyku to se mi už plete .Tak jaký typ je potřeba ? Dík

Tuhle otázku jako myslíš vážně ? Co takhle ukázat snahu a vlastní píli a něco si o Cčku nastudovat, když už v něm začneš něco dělat ? Nebo aspoň použít strejdu Googla a něco o Cčku a typech si najít ? Když jsem zadal strejdovi Googlovi dotaz, tak mi vysypal hned v prvních třech odkazech spoustu užitečných informací (víc jsem toho neprohlížel…). Něco jako typ word tam samozřejmě je. A jestli se chceš Cčko naučit, doporučuju “Učebnice jazyka C” od Pavla Herouta.

No já nevycházím z úžasu. Když někomu, kdo chce poradit někdo napíše, že onen tazatel nedostatečně specifikoval řešený problém a zeptá se ho, co vlastně přesně řeší a za jakých podmínek, tak tvoje odpověď na to je „Já vím že se strapnuji která to jsou?” ?? My tu snad píšeme svahilsky, nebo co…?

S takovýmhle myšlením běž dělat třeba politoligii, a ne technický obor.

A to ještě ani nemluvím o tom, co ti tu psali ostatní. Už snad všichni z vlákna ti slušně sdělili že v podstatě řešíš pitomost a jádro problému jako takového ti uniká, já osobně jsem byl ještě přímější, protože si na zdvořilostní kličkování při řešení technických problémů nepotrpím, protože to spíš škodí - a nic. Jak moc upřímně bys to ještě potřeboval, abys to pochopil? Nebo snad děláš nějaký supertajný teploměr s DS18B20, PICem a LCD a detaily jsou též supertajné a na veřejnost prostě nesmí??

Na co konkrétně potřebuješ šestnáctibitový char? A i kdyby k tomu byl nějaký skutečný důvod - už ti někdo někdy řekl, že word se skládá ze dvou bajtů?

Apropos, už víš co a u čeho je TXREG a jak se přesně chová?