ASCII string
'u TBCD(Telephony Binary-Coded Decimal)
biçimine dönüştürmek istiyorum ve tam tersi C dilinde. Pek çok sitede arama yaptım ancak cevabımı bulamadım.CTL'de TBCD Dönüştürme için
5
A
cevap
5
Her bir ASCII karakterini kendi TBCD karşılığıyla eşleştirmek için en kolay bir çift dizi kullanmak olasıdır. Ve tam tersi. Kullanmanız gereken what I read on Wikipedia itibaren
aşağıdaki: Bir TBCD varsa
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 */
};
, sen yapardın ASCII dönüştürmek için:
/* 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 için ASCII dönüştürmek için çok benzer :
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
evet, cevabı güncelledim – perreal
İlgili konular
- 1. DataTable için IQueryable dönüştürme
- 2. DateTime.MinValue DateTimeOffset için dönüştürme
- 3. Çokgen için yolu dönüştürme
- 4. Dönüştürme BSTR için char *
- 5. Dönüştürme GHC.Int.Int64 için Int
- 6. Dönüştürme svg için json
- 7. Döngü için gelişmiş için döngü için dönüştürme
- 8. dönüştürme adlı vektör dataframe için
- 9. dönüştürme dize nesne arraylistof için
- 10. Dönüştürme boost :: uuid için char *
- 11. Nasıl Kotlin'e Int için Dönüştürme
- 12. . Azure için web.config dosyasına dönüştürme.
- 13. dönüştürme int std için :: dize
- 14. Dönüştürme vh birimleri için JS
- 15. dönüştürme struct tm time_t için
- 16. SSIS: DT_WSTR için DT_NTEXT Dönüştürme
- 17. Dönüştürme px Android pt için
- 18. Java'da int için baytları dönüştürme
- 19. Dizgi dönüştürme için beklenmeyen dizi
- 20. MySQL'i Dönüştürme PostgreSQL'e Dönüştürme
- 21. Google nexus için px'den dp'ye dönüştürme 7
- 22. Dönüştürme tarihi, R için JSON biçiminde
- 23. dönüştürme türü "Char **" için "const char **"
- 24. Dönüştürme IPv6, uzun ve uzun IPv6 için
- 25. dönüştürme tablosu hücreleri metin kutuları için JQuery
- 26. Curl dönüştürme Python için "-I --user"
- 27. SQL Server'da tıklatmalar için tarih dönüştürme
- 28. Dize Listesi için Çift Listesi dönüştürme nasıl?
- 29. GridView ile kullanım için DBContext'i ObjectContext'e Dönüştürme
- 30. JSON nesnesi php için bir dize dönüştürme
T BCD için C uygulaması burada verilmiştir: http://en.wikipedia.org/wiki/Double_dabble –
@kmkaplan ASCII'ye dönüştürülmek üzere TBCD biçiminde bir IMSI aldığımı varsayalım. Yukarıdaki diziler nasıl yardımcı olur? –
@DJ Gerçekten bir IMSI'nin ne olduğunu bilmiyorum ama bir TBCD dizisini bir ASCII dizesine nasıl dönüştüreceğinize dair bir örnek vermek için cevabımı düzenledim. – kmkaplan