ASCII string
을 TBCD(Telephony Binary-Coded Decimal)
형식으로 변환하고 C에서 그 반대의 경우도 있습니다. 여러 사이트에서 검색했지만 내 대답을 찾을 수 없습니다.ASCII에서 TBCD 로의 변환
5
A
답변
5
가장 쉬운 방법은 배열 쌍을 사용하여 각 ASCII 문자를 해당 TBCD에 매핑하는 것입니다. 그 반대. 당신이 사용해야 what I read on Wikipedia에서
은 다음과 : 당신은 TBCD이있는 경우
const char *tbcd_to_ascii = "*#abc";
const char ascii_to_tbcd[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0,11, 0, 0, 0, 0, 0, 0,10, 0, 0, 0, 0, 0, /* # * */
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0 /* digits */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0,12,13,14 /* a b c */
};
, 당신은 할 것 ASCII로 변환 :
/* The TBCD to convert */
int tbcd[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
/* The converted ASCII string will be stored here. Make sure to have enough room for the result */
char ascii[16];
/* Convert the TBCD to ASCII */
int i;
for (i = 0; i < sizeof(tbcd)/sizeof(*tbcd); i++)
ascii[i] = tbcd_to_ascii[tbcd[i]];
/* For safety, null terminate the ASCII string */
ascii[i] = 0;
을 TBCD에 ASCII로 변환하는 것은 매우 유사하다 :
for (i = 0; ascii[i]; i++)
tbcd[i] = ascii_to_tbcd[ascii[i]];
2
#include <ctype.h>
int cnv_tbcd(char *str, char *tbcd) {
int c = 0;
int err = 0;
for (c=0; str[c]; c++) {
if (isdigit(str[c])) {
tbcd[c] = str[c] & 0x0f;
} else {
switch(str[c]) {
case '*': tbcd[c] = 0x0a; break;
case '#': tbcd[c] = 0x0b; break;
case 'a': tbcd[c] = 0x0c; break;
case 'b': tbcd[c] = 0x0d; break;
case 'c': tbcd[c] = 0x0e; break;
default: tbcd[c] = 0xff; err++;
}
}
}
if (c % 2 == 0) {
tbcd[c] = 0x0f;
tbcd[c+1] = 0;
}
return err;
}
+0
예, 답변을 업데이트했습니다. – perreal
관련 문제
- 1. C++에서 문자열과 int의 concatanation. ASCII에서 HEX 로의 변환
- 2. PHP에서 ASCII에서 16 진수로 변환
- 3. ASCII에서 Java로 UTF-8로 변환
- 4. 리눅스 커널 - ASCII에서 정수
- 5. RSS에서 RDF 로의 변환
- 6. hsl에서 rgb 로의 변환
- 7. QPainterPath 로의 QVariant 변환
- 8. mysql에서 PDO 로의 변환
- 9. .SQL에서 .DB 로의 변환
- 10. UTF8에서 ASCII 로의 변환
- 11. Datalog에서 SQL 로의 변환
- 12. HSL에서 /로의 linearRGB 변환
- 13. Dojo에서 jQuery 로의 변환
- 14. MXF 로의 FFMPEG 변환
- 15. jQuery에서 JavaScript 로의 변환
- 16. WebP 로의 빠른 변환
- 17. htaccess에서 nginx 로의 변환
- 18. XML 로의 XSD 변환
- 19. CakePHP에서 CodeIgniter 로의 변환
- 20. WMV 로의 비디오 변환
- 21. JSP에서 PDF 로의 변환
- 22. POJO에서 POCO 로의 변환
- 23. MySQL에서 MongoDB 로의 변환
- 24. IL에서 C# 로의 변환
- 25. sh에서 py 로의 변환
- 26. html 로의 Gtk 변환
- 27. PHP에서 Laravel 로의 변환
- 28. Python에서 Matlab 로의 변환?
- 29. double에서 integer 로의 변환
- 30. EDI에서 XML 로의 변환
T 그는 BCD에 대한 C 구현을 다음과 같이 제공합니다. http://en.wikipedia.org/wiki/Double_dabble –
@kmkaplan TBCD 형식의 IMSI를 ASCII로 변환한다고 가정합니다. 배열이 어떻게 도움이 될까요? –
@DJ IMSI가 무엇인지는 모르지만 TBCD 배열을 ASCII 문자열로 변환하는 방법을 보여주기 위해 내 대답을 편집했습니다. – kmkaplan