Отговори на тема  [ 5 мнения ] 
Преобразуване на IntToHex(); 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Нед Окт 19, 2008 7:26 pm
Мнения: 673
Мнение Преобразуване на IntToHex();
Нещо запецнах с декларирането на променливите :oops:
Трябва ми да зглобя един масив.
Код:
char tmp_byte_to_send[6],tmp_str[3];
unsigned char byte_reg[12]; трябвами така защ. имам по големи стойности от 127
int tmp_int_str;
tmp_byte_to_send[0]='A';
tmp_byte_to_send[1]='1';
tmp_int_str=(int)byte_reg[0];
tmp_str=IntToHex(tmp_int_str,2);
tmp_byte_to_send[2]=tmp_str[0];
tmp_byte_to_send[3]=tmp_str[1];
tmp_byte_to_send[5]=0;

Нещо се оплетох ... Когато взимам string от Edit поле- преобразуването бачка IntToHex(Ed->Text,2), но от масив не ще;
/////////////////
Проблема го реших по следния начин
Код:
AnsiString tmp_str;
tmp_str="A1"+IntToHex((int)byte_reg[0],2)+"";

По друг начин не се сетих???

_________________
Вниманиене съмвишист....ИЙ.


Нед Авг 16, 2009 12:57 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 1:48 pm
Мнения: 4906
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение 
int to HEX :?:
HEX - 16-чна бройна система
int(integer).....
кое точно искаш да конвертираш :?:

int i;
i = 256;
i = 0x100;
това си е просто начин на записване в десетеична или 16-чна бройна система
и се пише сглобя , не зглобя

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Пон Авг 17, 2009 11:55 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Нед Окт 19, 2008 7:26 pm
Мнения: 673
Мнение 
Пращам дани от PC->МикроКонтролер. За да различавам кви дани пращам ги пращам като "A1(1byte дани)" "A2(1byte дани)" ....
Когато даните се окажат 0x00 или по големи от 127, се объркват масивите (или ми се кара компилатора, че не може да преобразува типовете) ... затова преобразувам 0х00 като знаци ('0''0') или цифри 30,30 ... и по лесно пращам "A100" отколкото ("A1"0x00).

_________________
Вниманиене съмвишист....ИЙ.


Пон Авг 17, 2009 9:27 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Окт 11, 2006 8:19 pm
Мнения: 373
Местоположение: София/Edinburgh, UK
Мнение 
Използвай unsigned int и няма да прелива на 127...но пак не схванах за какво конвертиране става въпрос!

_________________
Българският портал за РОБОТИКА


Пон Авг 17, 2009 9:46 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Нед Окт 19, 2008 7:26 pm
Мнения: 673
Мнение 
Май-хич ме няма по обясненията ... кво да правя с 8-ми клас съм (с мъка свършил).
За да не правя гимнастики при приемането на дани от микроконтролера, му ги подавам като пакети с фиксирана дължина.
Почвам примерно "А1хх" , "А2хх" ... където хх е 1- байт , примерно 0х00 е като "00" или шеснайсетично "0х30,0х30" а 0хFF (255) e "F,F" (0x70,0x70)
Пакета ми става стринг "A100" =0 , или "A1FF"=255. Oпитвах и с IntToStr(int) , no 0х00 ми го преобразува на "0" а не на "00" (IntToHex(int,len))
Това S:string какво означава ??? когато го нараедя с AnsiString се получава, изпращането на стринга, но когато го наредя като масив и предам с пойнтер на SendString(*byte_reg); e тогава неще. :evil:

_________________
Вниманиене съмвишист....ИЙ.


Вто Авг 18, 2009 7:28 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 5 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни