The UNIX and Linux Forums  

Go Back   В UNIX и Linux Форумы > Топ форумы > Программирования высокого уровня
.
Google unix.com



Программирования высокого уровня Почтовые вопросы о C, C + +, Java, SQL и других языках программирования здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Как проверить, погоды это EBCDIC файл или нет c_chaitanya UNIX для чайников Вопросы И Ответы 0 04-03-2008 06:10 AM
ASCII в EBCDIC переходов er_ashu Shell программирование и сценарии 1 02-01-2008 05:43 PM
Дисплей EBCDIC качестве символов LouPelagalli AIX 1 08-09-2005 03:07 PM
Сравнивая EBCDIC файлы RishiPahuja Shell программирование и сценарии 2 07-08-2005 03:28 AM
Unix для преобразования EBCDIC Bab00shka UNIX для чайников Вопросы И Ответы 2 01-20-2005 12:58 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 11-24-2008
junaid.nehvi junaid.nehvi is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Сообщений: 19
Преобразование HEX в EBCDIC IN C

Я хочу перевести Hex значение для EBCDIC стоимости.
Я попытался преобразовать шестнадцатиричное к ASCII, а затем в EBCDIC, но она не дает желаемых результатов.

она не дает соответствующие EBCDIC стоимости вместо этого он дает некоторые нежелательные ценностей.
например;
Hex EBCDIC
-----------------
81
82 B
83 C
84 D
85 E
86 F
87 г
88 ч
89 I


Hex EBCDIC
-----------------
C1 A
C2 B
C3 C
C4 D
C5 E
C6 F
C7 G
C8 H
C9 Я


код, как:
//************************************************* *******************
# включить <stdio.h>
# включить <string.h>
# включить <stdlib.h>
# включить <ctype.h>
# включить <time.h>
статических характеристик неподписанными a2e [256] \u003d (
0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 37, 11, 12, 13, 14, 15,
16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
64, 79127123, 91108, 80125, 77, 93, 92, 78107, 96, 75, 97,
240.241.242.243.244.245.246.247.248.249.122, 94, 76126110111,
124.193.194.195.196.197.198.199.200.201.209.210.211.212.213.214,
215.216.217.226.227.228.229.230.231.232.233, 74224, 90, 95109,
121.129.130.131.132.133.134.135.136.137.145.146.147.148.149.150,
151.152.153.162.163.164.165.166.167.168.169.192.106.208.161, 7,
32, 33, 34, 35, 36, 21, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62225,
65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 83, 84, 85, 86, 87,
88, 89, 98, 99.100.101.102.103.104.105.112.113.114.115.116.117,
118.119.120.128.138.139.140.141.142.143.144.154.155.156.157.158,
159.160.170.171.172.173.174.175.176.177.178.179.180.181.182.183,
184.185.186.187.188.189.190.191.202.203.204.205.206.207.218.219,
220.221.222.223.234.235.236.237.238.239.250.251.252.253.254.255
);
статических характеристик неподписанными Е2А [256] \u003d (
0, 1, 2, 3156, 9.134.127.151.141.142, 11, 12, 13, 14, 15,
16, 17, 18, 19157133, 8135, 24, 25146143, 28, 29, 30, 31,
128.129.130.131.132, 10, 23, 27.136.137.138.139.140, 5, 6, 7,
144145, 22.147.148.149.150, 4.152.153.154.155, 20, 21158, 26,
32.160.161.162.163.164.165.166.167.168, 91, 46, 60, 40, 43, 33,
38.169.170.171.172.173.174.175.176.177, 93, 36, 42, 41, 59, 94,
45, 47.178.179.180.181.182.183.184.185.124, 44, 37, 95, 62, 63,
186.187.188.189.190.191.192.193.194, 96, 58, 35, 64, 39, 61, 34,
195, 97, 98, 99.100.101.102.103.104.105.196.197.198.199.200.201,
202.106.107.108.109.110.111.112.113.114.203.204.205.206.207.208,
209.126.115.116.117.118.119.120.121.122.210.211.212.213.214.215,
216.217.218.219.220.221.222.223.224.225.226.227.228.229.230.231,
123, 65, 66, 67, 68, 69, 70, 71, 72, 73.232.233.234.235.236.237,
125, 74, 75, 76, 77, 78, 79, 80, 81, 82.238.239.240.241.242.243,
92159, 83, 84, 85, 86, 87, 88, 89, 90.244.245.246.247.248.249,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57.250.251.252.253.254.255
);
символ ASCIItoEBCDIC (Const неподписанными символ с)
(
вернуться a2e [C];
)
символ EBCDICtoASCII (Const неподписанными символ с)
(
вернуться Е2А [C];
)
INT Main ()
(
символ outarr [10];
INT I \u003d 0, J \u003d 0;
символ hexval [10] \u003d "c1c2c3c4c5";
символ newstrValue;
hexToAscii символов (первый символ, символ второго)
(
шестнадцатиричный символ [5], * остановить;
шестнадцатиричное [0] \u003d'0 ';
шестнадцатиричное [1] \u003d 'X';
шестнадцатиричное [2] \u003d первый;
шестнадцатиричное [3] \u003d секунды;
шестнадцатиричное [4] \u003d 0;
вернуться strtol (HEX, И остановить, 16);
)
для (i \u003d 0; I <10; I + +)
(
outarr [J] \u003d hexToAscii (hexval [I], hexval [I + 1]);

outarr [J] \u003d ASCIItoEBCDIC (outarr [J]);
printf ( "EBCDIC стоимость% C \ N", outarr);
)

выход (0);
)
//************************************************* *******************

aftre компиляции я получить следующий результат.

$>. / ebcdictoascii
EBCDIC стоимость:
EBCDIC стоимость:
EBCDIC стоимость:
EBCDIC стоимость:
EBCDIC стоимость:
EBCDIC стоимость:
EBCDIC стоимость:
EBCDIC стоимость:
EBCDIC стоимость:
EBCDIC стоимость:
Old 11-24-2008
jlliagre jlliagre is online now Forum Advisor  
ɹǝsn sıɹɐlosuǝdo
  
 

Регистрация: Декабрь 2007
Место проведения: Париж
Сообщения: 1448
Я был даже удивлен скомпилированный код.

Вот несколько ошибок исправлено:
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>
static unsigned char a2e[256] = {
0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 37, 11, 12, 13, 14, 15,
16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
64, 79,127,123, 91,108, 80,125, 77, 93, 92, 78,107, 96, 75, 97,
240,241,242,243,244,245,246,247,248,249,122, 94, 76,126,110,111,
124,193,194,195,196,197,198,199,200,201,209,210,211,212,213,214,
215,216,217,226,227,228,229,230,231,232,233, 74,224, 90, 95,109,
121,129,130,131,132,133,134,135,136,137,145,146,147,148,149,150,
151,152,153,162,163,164,165,166,167,168,169,192,106,208,161, 7,
32, 33, 34, 35, 36, 21, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62,225,
65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 83, 84, 85, 86, 87,
88, 89, 98, 99,100,101,102,103,104,105,112,113,114,115,116,117,
118,119,120,128,138,139,140,141,142,143,144,154,155,156,157,158,
159,160,170,171,172,173,174,175,176,177,178,179,180,181,182,183,
184,185,186,187,188,189,190,191,202,203,204,205,206,207,218,219,
220,221,222,223,234,235,236,237,238,239,250,251,252,253,254,255
};
static unsigned char e2a[256] = {
0, 1, 2, 3,156, 9,134,127,151,141,142, 11, 12, 13, 14, 15,
16, 17, 18, 19,157,133, 8,135, 24, 25,146,143, 28, 29, 30, 31,
128,129,130,131,132, 10, 23, 27,136,137,138,139,140, 5, 6, 7,
144,145, 22,147,148,149,150, 4,152,153,154,155, 20, 21,158, 26,
32,160,161,162,163,164,165,166,167,168, 91, 46, 60, 40, 43, 33,
38,169,170,171,172,173,174,175,176,177, 93, 36, 42, 41, 59, 94,
45, 47,178,179,180,181,182,183,184,185,124, 44, 37, 95, 62, 63,
186,187,188,189,190,191,192,193,194, 96, 58, 35, 64, 39, 61, 34,
195, 97, 98, 99,100,101,102,103,104,105,196,197,198,199,200,201,
202,106,107,108,109,110,111,112,113,114,203,204,205,206,207,208,
209,126,115,116,117,118,119,120,121,122,210,211,212,213,214,215,
216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,
123, 65, 66, 67, 68, 69, 70, 71, 72, 73,232,233,234,235,236,237,
125, 74, 75, 76, 77, 78, 79, 80, 81, 82,238,239,240,241,242,243,
92,159, 83, 84, 85, 86, 87, 88, 89, 90,244,245,246,247,248,249,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57,250,251,252,253,254,255
};

unsigned char ASCIItoEBCDIC(const unsigned char c)
{
  return a2e[c];
}
unsigned char EBCDICtoASCII(const unsigned char c)
{
  return e2a[c];
}
unsigned char hexToAscii(char first, char second)
{
  char hex[5], *stop;
  hex[0]='0';
  hex[1]='x';
  hex[2]=first;
  hex[3]=second;
  hex[4]=0;
  return (unsigned char)strtol(hex, &stop, 16);
}
int main()
{
  unsigned char outarr[10];
  int i=0,j=0;
  char hexval[10]="4041424344";
  for (i=0; i<10 ;i+=2)
  {
    outarr[j]= hexToAscii(hexval[i], hexval[i + 1]);
    printf("ascii value is %d %c\n",outarr[j], outarr[j]);
    outarr[j]=ASCIItoEBCDIC(outarr[j]);
    printf("ebcdic value is %d\n", outarr[j]);
  }
  exit(0);
}
Old 11-25-2008
junaid.nehvi junaid.nehvi is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Сообщений: 19
Re: для jlliagre

Я был даже удивлен скомпилированный код.

Вот несколько ошибок исправлено:
.
.
.
.
Спасибо за ваше внимание
Но для
символ hexval [10] \u003d "c1c2c3c4c5";
Я ожидал EBCDIC ценностях, как:
Неопределенный артикль
B
C
D
E
но я получаю
ASCII значение 193 Б
EBCDIC стоимость составляет 119
ASCII значение 194
EBCDIC стоимость составляет 120
ASCII значение 195 Ã
EBCDIC стоимость составляет 128
ASCII значение 196 Ä
EBCDIC стоимость 138
ASCII стоимость составляет 197 Е
EBCDIC стоимость 139



Как я могу получить значения как ABCD E. ......
Old 11-25-2008
junaid.nehvi junaid.nehvi is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Сообщений: 19
за символ hexval [10] \u003d "c1c2c3c4c5";
Я ожидал EBCDIC ценностях, как:
Неопределенный артикль
B
C
D
E
но я получаю
ASCII значение 193 Б
EBCDIC стоимость составляет 119
ASCII значение 194
EBCDIC стоимость составляет 120
ASCII значение 195 Ã
EBCDIC стоимость составляет 128
ASCII значение 196 Ä
EBCDIC стоимость 138
ASCII стоимость составляет 197 Е
EBCDIC стоимость 139



Как я могу получить значения как ABCD E. ......
Old 11-25-2008
jlliagre jlliagre is online now Forum Advisor  
ɹǝsn sıɹɐlosuǝdo
  
 

Регистрация: Декабрь 2007
Место проведения: Париж
Сообщения: 1448
Почему вы ожидали 0xC1 показывать?
0xC1 в "ASCII" (на самом деле ISO-Latin1) является.
Old 11-25-2008
junaid.nehvi junaid.nehvi is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Сообщений: 19
Re: для jlliagre

Почему вы ожидали 0xC1 показывать?
0xC1 в "ASCII" (на самом деле ISO-Latin1) является.
*********************************
в EBCDIC эквивалент 0xc1 является A
и я вынужден печатать EBCDIC эквивалента Не Ascii эквивалента


Я изменил следующий массив
статических характеристик неподписанными a2e [256] \u003d (
0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 37, 11, 12, 13, 14, 15,16,
17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,64,
79127123, 91108, 80125, 77, 93, 92, 78107, 96, 75, 97,30,31,
32.243.244.245.246.247.248.249.122, 94, 76,126,110,111,32,193,194,
195,196,197,198,199,200,201,209,46,60,40,124,214,38,216,217,226,
227,228,229,230,231,232,33, 36,42, 41, 59,109,45,47,130,131,132,133,
134,135,136,137,145,44,37,95,62,63,151,152,153,162,163,164,165,166,
167,168,58,35,64,39,61, 34,32, 97, 98, 99, 100, 101, 102, 103, 104, 105, 1,
43, 44, 9, 10, 27,48, 106, 107, 108, 109, 110, 111, 112, 113, 114, 58, 59,
4, 20, 62,225,65, 66, 115, 116, 117, 118, 119, 120, 121, 122, 82, 83, 84, 85,
86, 87,88, 89, 98, 99,100,101,102,103,104,96,112,113,114,115,116,117,118,65,66,
67,68,69,70,71,72,73,144,154,155,156,157,158,159,74,75,76,77,78,79,80,81,82,178,
179,180,181,182,183,184,185,83,84,85,86,87,88,89,90,204,205,206,207,218,219,30,
31,32,33,34,35,36,37,38,39,250,251,252,253,254,255
);


и печатные outarr как символ
Я получаю правильные значения для алфавитов
но не за цифрами
Я использовал следующую таблицу

Декабрь Hex ASCII EBCDIC декабря Hex ASCII EBCDIC
---------------------- -----------------------
0 0 NUL NUL 32 20 DS
1 1 СО СО 33 21! SOS
2 2 STX STX 34 22 "FS
3 3 ETX ETX 35 23 # WUS
4 4 СРВ SEL 36 24 $ BYP / ИЯФ
5 5 ENQ HT 37 25% LF
6 6 ACK РНБ 38 26 И ETB
7 7 BEL DEL 39 27 'ESC
8 8 BS GE 40 28 (SA
9 9 TAB SPS 41 29) SFE
10 LF RPT 42 2A * SM / SW
11 B В.Т. ВТ 43 2B + CSP
C 12 FF FF 44 2C, МИД
13 D CR CR 45 2D - ENQ
14 E SO SO 46 2E. ACK
15 F СИ СИ 47 2F / BEL
16 10 DLE DLE 48 30 0
17 11 DC1 DC1 49 31 1
18 12 DC2 DC2 50 32 2 SYN
19 13 DC3 DC3 51 33 3 ИК
20 14 DC4 RES / ЕПС 52 34 4 PP
21 15 НАК NL 53 35 5 РНН
22 16 SYN BS 54 36 6 НБС
23 17 ETB ПСУ 55 37 7 СРВ
24 18 CAN CAN 56 38 8 SBS
25 19 EM EM 57 39 9 IT
26 1A SUB UBS 58 3A: RFF
27 1B ESC CU1 59 3B; CU3
28 IFS 1C FS 60 3C <DC4
29 1D ОО IGS 61 3D \u003d НАК
30 1E RS IRS 62 3E>
31 1F США ITB / IUS 63 3F? SUB

Декабрь Hex ASCII EBCDIC декабря Hex ASCII EBCDIC
------------------------ ------------------------
64 40 @ 96 60 SP `_
65 41 RSP 97 61 а /
66 42 B 98 B 62
67 43 C 99 63 C
68 44 D 100 D 64
69 45 E 101 65 E
70 46 F 102 66 F
71 47 G 103 67 G
72 48 H 104 68 ч
73 49 я 69 я 105
74 4A J 106 6A J |
75 4B K. 107 6B K,
76 4C L <108 л 6C%
77 4D M (109 м 6D _
78 4E N + N 110 6E>
79 4F O | 111 6F O?
80 50 П И 112 70 С
81 51 Q 113 Q 71
82 52 R 72 R 114
83 53 S 115 S 73
84 54 Т 116 74 т
85 55 U 75 U 117
86 56 V 118 V 76
87 57 Вт 119 77 Вт
88 58 х 120 х 78
89 59 Y 121 79 Y `
90 5A Z! 122 7A Z:
91 5B [$ 123 7B (#
92 5C \ * 124 7C | @
93 5D]) 125 7D) '
94 5E ^; 126 7E ~ \u003d
95 5F _ 127 7F DEL "

Декабрь Hex ASCII EBCDIC декабря Hex ASCII EBCDIC
------------------------ ------------------------
128 80 160 A0
129 81 161 A1
130 82 B 162 A2 S
131 83 с 163 т A3
132 84 D 164 A4 U
133 85 E 165 V A5
134 86 F 166 W A6
135 87 G 167 X A7
136 88 часа 168 A8 Y
137 89 I 169 A9 Z
138 8A 170 АА
139 8B (171 AB
140 8C 172 AC
141 8D 173 н.э. [
142 8E 174 А.Е.
143 8F + 175 А.Ф.
144 90 176 B0
145 91 J 177 B1
146 92 K 178 B2
147 93 л 179 B3
148 94 м 180 B4
149 95 N 181 B5
150 96 O 182 B6
151 97 P 183 B7
152 98 Q 184 B8
153 99 R 185 B9
154 9A 186 бакалавра
155 9B) 187 BB
156 9C 188 г. до н.э.
157 9D 189 BD
158 9E 190 BE
159 9F 191 BF

Декабрь Hex ASCII EBCDIC декабря Hex ASCII EBCDIC
------------------------ ------------------------
192 C0 224 E0
193 C1 A 225 E1
194 C2 B 226 E2 S
195 C3 C 227 E3 T
196 C4 D 228 Е4 U
197 C5 E 229 V E5
198 C6 F 230 E6 W
199 C7 G 231 X E7
200 C8 H 232 E8 Y
201 C9 я 233 E9 Z
202 CA 234 Е.А.
203 КБ 235 Е.Б.
204 CC 236 EC
205 CD 237 ED
206-Е 238 EE
207 CF 239 EF
208 D0 240 F0 0
209 D1 J 241 F1 1
210 D2 K 242 F2 2
211 D3 L 243 F3 3
212 D4 М 244 F4 4
213 D5 N 245 F5 5
214 D6 O 246 F6 6
215 D7 С 247 F7 7
216 D8 Q 248 F8 8
217 D9 R 249 F9 9
218 ДА 250 Ф.А.
219 DB 251 FB
220 DC 252 ФК
221 ДД 253 FD
222 DE 254 FE
223 DF 255 FF
Для 0XC1 EBCDIC значение представляет собой
следовательно, на позиции 193 массив я поставил значение \u003d 65
0X65 как в ASCII является A


он работает для алфавитов

Последний раз редактировалось junaid.nehvi; на 11-25-2008 10:02 AM..
Old 11-25-2008
jlliagre jlliagre is online now Forum Advisor  
ɹǝsn sıɹɐlosuǝdo
  
 

Регистрация: Декабрь 2007
Место проведения: Париж
Сообщения: 1448
Ваш код с помощью 0xC1 как ASCII значения, а не один EBCDIC.
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 06:57 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0