- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
/*==================================================================================*/
/* Преобразование целого числа в ASCII */
/*==================================================================================*/
unsigned char IntToStr (unsigned long Value,unsigned char *pBuf,unsigned char n,unsigned char Zeros)
{
// Локальные переменные
unsigned char j = 0;
unsigned long dec;
uldiv_t Tmp;
// Программа
// Перевод ASCII в значение
while (n--)
{
switch(n)
{
case 0:
dec = 1;
break;
case 1:
dec = 10;
break;
case 2:
dec = 100;
break;
case 3:
dec = 1000;
break;
case 4:
dec = 10000;
break;
case 5:
dec = 100000;
break;
case 6:
dec = 1000000;
break;
case 7:
dec = 10000000;
break;
case 8:
dec = 100000000;
break;
case 9:
dec = 1000000000;
}
Tmp = uldiv(Value,dec);
// Остаток
Value = Tmp.rem;
// Ограничение
if (Tmp.quot > 9)
Tmp.quot = 9;
// Проверка целой части
if (Zeros || j || Tmp.quot || (dec == 1))
*(pBuf + j++) = Hex_Table[Tmp.quot];
}
*(pBuf + j) = '\0';
return j;
}
comnimh 10.03.2010 20:34 # −1
comnimh 10.03.2010 20:36 # 0
guest 10.03.2010 21:15 # 0
comnimh 10.03.2010 21:21 # −2
Чистые си не дадут вернуть структуру, только указатель.
guest 10.03.2010 22:06 # −1.2
comnimh 10.03.2010 22:16 # −1
angry C nerd 11.03.2010 00:00 # 0
http://www.lysator.liu.se/c/c-faq/c-9.html#9-2
comnimh 11.03.2010 00:13 # 0
Нас обманывали!!!
бгг
guest 12.03.2010 03:07 # −2
возврат через указатель круче - заполнение данных идёт сразу.
не слушай их, олдскул решае
comnimh 12.03.2010 03:41 # 0
Я всегда возвращаю int (причем -1 при ошибке, типа как в стандартных libc-функциях).
guest 13.03.2010 18:32 # 0
guest 13.03.2010 18:32 # −1
comnimh 13.03.2010 23:58 # −1
Вообще оверхед большой, мне не подходит.