Subversion Repositories HomeAutomation

Rev

Rev 969 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 969 Rev 976
1
 
1
 
2
#include <string>
2
#include <string>
3
 
3
 
4
/***************************************************************************
4
/***************************************************************************
5
 *   Copyright (C) 2004 by Mattias Runge                                   *
5
 *   Copyright (C) 2004 by Mattias Runge                                   *
6
 *   mattias@mrunge.se                                                     *
6
 *   mattias@mrunge.se                                                     *
7
 *                                                                         *
7
 *                                                                         *
8
 *   This program is free software; you can redistribute it and/or modify  *
8
 *   This program is free software; you can redistribute it and/or modify  *
9
 *   it under the terms of the GNU General Public License as published by  *
9
 *   it under the terms of the GNU General Public License as published by  *
10
 *   the Free Software Foundation; either version 2 of the License, or     *
10
 *   the Free Software Foundation; either version 2 of the License, or     *
11
 *   (at your option) any later version.                                   *
11
 *   (at your option) any later version.                                   *
12
 *                                                                         *
12
 *                                                                         *
13
 *   This program is distributed in the hope that it will be useful,       *
13
 *   This program is distributed in the hope that it will be useful,       *
14
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
14
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
15
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
15
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
16
 *   GNU General Public License for more details.                          *
16
 *   GNU General Public License for more details.                          *
17
 *                                                                         *
17
 *                                                                         *
18
 *   You should have received a copy of the GNU General Public License     *
18
 *   You should have received a copy of the GNU General Public License     *
19
 *   along with this program; if not, write to the                         *
19
 *   along with this program; if not, write to the                         *
20
 *   Free Software Foundation, Inc.,                                       *
20
 *   Free Software Foundation, Inc.,                                       *
21
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
21
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
22
 ***************************************************************************/
22
 ***************************************************************************/
23
#include "tools.h"
23
#include "tools.h"
24
 
24
 
25
unsigned int bin2uint(string bin)
25
unsigned int bin2uint(string bin)
26
{
26
{
27
    unsigned int num = 0;
27
    unsigned int num = 0;
28
 
28
 
29
    for (int n = bin.length()-1; n >= 0; n--)
29
    for (int n = bin.length()-1; n >= 0; n--)
30
    {
30
    {
31
        if (bin[n] == '1')
31
        if (bin[n] == '1')
32
            num += (unsigned int)pow(2.0f, (int)(bin.length()-1-n));
32
            num += (unsigned int)pow(2.0f, (int)(bin.length()-1-n));
33
    }
33
    }
34
 
34
 
35
    return num;
35
    return num;
36
}
36
}
37
 
37
 
38
string invert(string bin)
38
string invert(string bin)
39
{
39
{
40
    string inverted;
40
    string inverted;
41
 
41
 
42
    for (int n = 0; n < bin.length(); n++)
42
    for (int n = 0; n < bin.length(); n++)
43
        inverted += (bin[n] == '1' ? '0' : '1');
43
        inverted += (bin[n] == '1' ? '0' : '1');
44
 
44
 
45
    return inverted;
45
    return inverted;
46
}
46
}
47
 
47
 
48
float bin2float(string bin)
48
float bin2float(string bin)
49
{
49
{
50
    float num = 0;
50
    float num = 0;
51
 
51
 
52
    if (bin.length() == 0)
52
    if (bin.length() == 0)
53
        return 0.0f;
53
        return 0.0f;
54
 
54
 
55
    bool isNegative = false;;
55
    bool isNegative = false;;
56
 
56
 
57
    if (bin[0] == '1')
57
    if (bin[0] == '1')
58
    {
58
    {
59
        bin = invert(bin);
59
        bin = invert(bin);
60
        isNegative = true;
60
        isNegative = true;
61
    }
61
    }
62
 
62
 
63
    for (int n = bin.length()-1; n > 0; n--)
63
    for (int n = bin.length()-1; n > 0; n--)
64
    {
64
    {
65
        if (bin[n] == '1')
65
        if (bin[n] == '1')
66
            num += pow(2.0f, (int)(bin.length()-1-n));
66
            num += pow(2.0f, (int)(bin.length()-1-n));
67
    }
67
    }
68
 
68
 
69
    num /= 64.0f;
69
    num /= 64.0f;
70
 
70
 
71
    if (isNegative)
71
    if (isNegative)
72
        num = -num;
72
        num = -num;
73
 
73
 
74
    return num;
74
    return num;
75
}
75
}
76
 
76
 
77
string bin2hex(string bin)
77
string bin2hex(string bin)
78
{
78
{
79
    string hex;
79
    string hex;
80
 
80
 
81
    while (bin.size() > 0)
81
    while (bin.size() > 0)
82
    {
82
    {
83
        string part = bin.substr(0, 4);
83
        string part = bin.substr(0, 4);
84
        bin.erase(0, part.size());
84
        bin.erase(0, part.size());
85
 
85
 
86
        while (part.size() < 4)
86
        while (part.size() < 4)
87
            part = "0" + part;
87
            part = "0" + part;
88
 
88
 
89
        if (part == "0000")
89
        if (part == "0000")
90
            hex += '0';
90
            hex += '0';
91
        else if (part == "0001")
91
        else if (part == "0001")
92
            hex += '1';
92
            hex += '1';
93
        else if (part == "0010")
93
        else if (part == "0010")
94
            hex += '2';
94
            hex += '2';
95
        else if (part == "0011")
95
        else if (part == "0011")
96
            hex += '3';
96
            hex += '3';
97
        else if (part == "0100")
97
        else if (part == "0100")
98
            hex += '4';
98
            hex += '4';
99
        else if (part == "0101")
99
        else if (part == "0101")
100
            hex += '5';
100
            hex += '5';
101
        else if (part == "0110")
101
        else if (part == "0110")
102
            hex += '6';
102
            hex += '6';
103
        else if (part == "0111")
103
        else if (part == "0111")
104
            hex += '7';
104
            hex += '7';
105
        else if (part == "1000")
105
        else if (part == "1000")
106
            hex += '8';
106
            hex += '8';
107
        else if (part == "1001")
107
        else if (part == "1001")
108
            hex += '9';
108
            hex += '9';
109
        else if (part == "1010")
109
        else if (part == "1010")
110
            hex += 'a';
110
            hex += 'a';
111
        else if (part == "1011")
111
        else if (part == "1011")
112
            hex += 'b';
112
            hex += 'b';
113
        else if (part == "1100")
113
        else if (part == "1100")
114
            hex += 'c';
114
            hex += 'c';
115
        else if (part == "1101")
115
        else if (part == "1101")
116
            hex += 'd';
116
            hex += 'd';
117
        else if (part == "1110")
117
        else if (part == "1110")
118
            hex += 'e';
118
            hex += 'e';
119
        else if (part == "1111")
119
        else if (part == "1111")
120
            hex += 'f';
120
            hex += 'f';
121
    }
121
    }
122
 
122
 
123
    return hex;
123
    return hex;
124
}
124
}
125
 
125
 
126
string float2bin(float num, int length)
126
string float2bin(float num, int length)
127
{
127
{
128
    string bin;
128
    string bin;
129
 
129
 
130
    ///FIXME
130
    ///FIXME
131
 
131
 
132
    while (bin.size() < length)
132
    while (bin.size() < length)
133
        bin = "0" + bin;
133
        bin = "0" + bin;
134
 
134
 
135
    return bin;
135
    return bin;
136
}
136
}
137
 
137
 
138
string hex2bin(string hex)
138
string hex2bin(string hex)
139
{
139
{
140
    hex = strtolower(hex);
140
    hex = strtolower(hex);
141
 
141
 
142
    string bin;
142
    string bin;
143
 
143
 
144
    for (int n = 0; n < hex.length(); n++)
144
    for (int n = 0; n < hex.length(); n++)
145
    {
145
    {
146
        switch (hex[n])
146
        switch (hex[n])
147
        {
147
        {
148
            case '0': bin += "0000"; break;
148
            case '0': bin += "0000"; break;
149
            case '1': bin += "0001"; break;
149
            case '1': bin += "0001"; break;
150
            case '2': bin += "0010"; break;
150
            case '2': bin += "0010"; break;
151
            case '3': bin += "0011"; break;
151
            case '3': bin += "0011"; break;
152
            case '4': bin += "0100"; break;
152
            case '4': bin += "0100"; break;
153
            case '5': bin += "0101"; break;
153
            case '5': bin += "0101"; break;
154
            case '6': bin += "0110"; break;
154
            case '6': bin += "0110"; break;
155
            case '7': bin += "0111"; break;
155
            case '7': bin += "0111"; break;
156
            case '8': bin += "1000"; break;
156
            case '8': bin += "1000"; break;
157
            case '9': bin += "1001"; break;
157
            case '9': bin += "1001"; break;
158
            case 'a': bin += "1010"; break;
158
            case 'a': bin += "1010"; break;
159
            case 'b': bin += "1011"; break;
159
            case 'b': bin += "1011"; break;
160
            case 'c': bin += "1100"; break;
160
            case 'c': bin += "1100"; break;
161
            case 'd': bin += "1101"; break;
161
            case 'd': bin += "1101"; break;
162
            case 'e': bin += "1110"; break;
162
            case 'e': bin += "1110"; break;
163
            case 'f': bin += "1111"; break;
163
            case 'f': bin += "1111"; break;
164
        }
164
        }
165
    }
165
    }
166
 
166
 
167
    return bin;
167
    return bin;
168
}
168
}
169
 
169
 
170
string uint2bin(unsigned int num, int length)
170
string uint2bin(unsigned int num, int length)
171
{
171
{
172
    string bin;
172
    string bin;
173
 
173
 
174
    while (num)
174
    while (num)
175
    {
175
    {
176
        bin = char((num&1)+'0') + bin;
176
        bin = char((num&1)+'0') + bin;
177
        num >>= 1;
177
        num >>= 1;
178
    }
178
    }
179
 
179
 
180
    while (bin.size() < length)
180
    while (bin.size() < length)
181
        bin = "0" + bin;
181
        bin = "0" + bin;
182
 
182
 
183
    return bin;
183
    return bin;
184
}
184
}
185
 
185
 
186
 
186
 
187
vector<string> explode(string delimiter, string str)
187
vector<string> explode(string delimiter, string str)
188
{
188
{
189
    vector<string> parts;
189
    vector<string> parts;
190
    string::size_type startPos = 0;
190
    string::size_type startPos = 0;
191
    string::size_type endPos = 0;
191
    string::size_type endPos = 0;
192
 
192
 
193
    while ((endPos = str.find(delimiter, startPos)) != string::npos)
193
    while ((endPos = str.find(delimiter, startPos)) != string::npos)
194
    {
194
    {
195
        parts.push_back(str.substr(startPos, endPos-startPos));
195
        parts.push_back(str.substr(startPos, endPos-startPos));
196
        startPos = endPos+delimiter.length();
196
        startPos = endPos+delimiter.length();
197
    }
197
    }
198
 
198
 
199
    if (startPos < str.length())
199
    if (startPos < str.length())
200
    {
200
    {
201
        parts.push_back(str.substr(startPos, str.length()-startPos));
201
        parts.push_back(str.substr(startPos, str.length()-startPos));
202
    }
202
    }
203
 
203
 
204
    return parts;
204
    return parts;
205
}
205
}
206
 
206
 
207
string strtoupper(string s)
207
string strtoupper(string s)
208
{
208
{
209
    for (unsigned int n = 0; n < s.size(); n++)
209
    for (unsigned int n = 0; n < s.size(); n++)
210
        s[n] = (char)toupper(s[n]);
210
        s[n] = (char)toupper(s[n]);
211
 
211
 
212
    return s;
212
    return s;
213
}
213
}
214
 
214
 
215
string strtolower(string s)
215
string strtolower(string s)
216
{
216
{
217
    for (unsigned int n = 0; n < s.size(); n++)
217
    for (unsigned int n = 0; n < s.size(); n++)
218
        s[n] = (char)tolower(s[n]);
218
        s[n] = (char)tolower(s[n]);
219
 
219
 
220
    return s;
220
    return s;
221
}
221
}
222
 
222
 
223
string trim(string s)
223
string trim(string s)
224
{
224
{
225
    return trim(s, ' ');
225
    return trim(s, ' ');
226
}
226
}
227
 
227
 
228
string trim(string s, char c)
228
string trim(string s, char c)
229
{
229
{
230
    while (s[0] == c)
230
    while (s[0] == c)
231
        s.erase(0, 1);
231
        s.erase(0, 1);
232
 
232
 
233
    while (s[s.length()-1] == c)
233
    while (s[s.length()-1] == c)
234
        s.erase(s.length()-1, 1);
234
        s.erase(s.length()-1, 1);
235
 
235
 
236
    return s;
236
    return s;
237
}
237
}
238
 
238
 
239
int stoi(const string s)
239
int stoi(const string s)
240
{
240
{
241
    istringstream in(s);
241
    istringstream in(s);
242
    int i;
242
    int i;
243
    in >> i;
243
    in >> i;
244
    return i;
244
    return i;
245
}
245
}
246
 
246
 
247
string itos(int i)
247
string itos(int i)
248
{
248
{
249
    ostringstream out;
249
    ostringstream out;
250
    out << i;
250
    out << i;
251
    return out.str();
251
    return out.str();
252
}
252
}
253
 
253
 
254
float stof(const string s)
254
float stof(const string s)
255
{
255
{
256
    istringstream in(s);
256
    istringstream in(s);
257
    float f;
257
    float f;
258
    in >> f;
258
    in >> f;
259
    return f;
259
    return f;
260
}
260
}
261
 
261
 
262
string ftos(float f)
262
string ftos(float f)
263
{
263
{
264
    ostringstream out;
264
    ostringstream out;
265
    out << f;
265
    out << f;
266
    return out.str();
266
    return out.str();
267
}
267
}
268
 
268
 
269
string str_replace(string search, string replace, string str)
269
string str_replace(string search, string replace, string str)
270
{
270
{
271
    vector<string> parts = explode(search, str);
271
    vector<string> parts = explode(search, str);
272
 
272
 
273
    string result;
273
    string result;
274
    for (int n = 0; n < parts.size(); n++)
274
    for (int n = 0; n < parts.size(); n++)
275
    {
275
    {
276
        result += parts[n];
276
        result += parts[n];
277
 
277
 
278
        if (n < parts.size()-1)
278
        if (n < parts.size()-1)
279
            result += replace;
279
            result += replace;
280
    }
280
    }
281
 
281
 
282
    return result;
282
    return result;
283
}
283
}
284
 
284
 
285
string file_get_contents(string filename)
285
string file_get_contents(string filename)
286
{
286
{
287
    ifstream srcfile(filename.c_str());
287
    ifstream srcfile(filename.c_str());
288
 
288
 
289
    if (!srcfile.is_open())
289
    if (!srcfile.is_open())
290
    {
290
    {
291
        srcfile.close();
291
        srcfile.close();
292
        return "";
292
        return "";
293
    }
293
    }
294
 
294
 
295
    string buffer = "";
295
    string buffer = "";
296
    string line;
296
    string line;
297
 
297
 
298
    while (!srcfile.eof())
298
    while (!srcfile.eof())
299
    {
299
    {
300
        getline(srcfile, line);
300
        getline(srcfile, line);
301
 
301
 
302
        if (srcfile.eof())
302
        if (srcfile.eof())
303
            break;
303
            break;
304
       
304
       
305
        buffer += line + "\n";
305
        buffer += line + "\n";
306
    };
306
    };
307
 
307
 
308
    srcfile.close();
308
    srcfile.close();
309
 
309
 
310
    return buffer;
310
    return buffer;
311
}
311
}
312
 
312
 
313
bool file_exists(string filename)
313
bool file_exists(string filename)
314
{
314
{
315
    ifstream file(filename.c_str());
315
    ifstream file(filename.c_str());
316
    if (file.is_open())
316
    if (file.is_open())
317
    {
317
    {
318
        file.close();
318
        file.close();
319
        return true;
319
        return true;
320
    }
320
    }
321
 
321
 
322
    return false;
322
    return false;
323
}
323
}
324
 
324
 
325
string escape(string in)
325
string escape(string in)
326
{
326
{
327
    string out;
327
    string out;
328
 
328
 
329
    for (int n = 0; n < in.length(); n++)
329
    for (int n = 0; n < in.length(); n++)
330
    {
330
    {
331
        switch (in[n])
331
        switch (in[n])
332
        {
332
        {
-
 
333
            case '\r':
-
 
334
                break;
-
 
335
 
333
            case '\n':
336
            case '\n':
334
                out += "\\n";
337
                out += "\\n";
335
                break;
338
                break;
-
 
339
 
-
 
340
            case '\'':
-
 
341
                out += "\\'";
-
 
342
                break;
-
 
343
 
-
 
344
            case '"':
-
 
345
                out += "\\\"";
-
 
346
                break;
336
 
347
 
337
            default:
348
            default:
338
                out += in[n];
349
                out += in[n];
339
                break;
350
                break;
340
        }
351
        }
341
    }
352
    }
342
 
353
 
343
    return out;
354
    return out;
344
}
355
}
-
 
356
 
-
 
357
string rpad(string in, int length, char c)
-
 
358
{
-
 
359
    while (in.length() < length)
-
 
360
    {
-
 
361
        in += c;
-
 
362
    }
-
 
363
 
-
 
364
    return in;
-
 
365
}
-
 
366
 
-
 
367
string lpad(string in, int length, char c)
-
 
368
{
-
 
369
    while (in.length() < length)
-
 
370
    {
-
 
371
        in = c + in;
-
 
372
    }
-
 
373
 
-
 
374
    return in;
-
 
375
}
-
 
376
 
345
 
377
 
346
// FileTools
378
// FileTools
347
 
379
 
348
vector<string> FileTools::GetDirList(string path)
380
vector<string> FileTools::GetDirList(string path)
349
{
381
{
350
    DIR *dir = opendir(path.c_str());
382
    DIR *dir = opendir(path.c_str());
351
    vector<string> list;
383
    vector<string> list;
352
 
384
 
353
    if (!dir)
385
    if (!dir)
354
        return list;
386
        return list;
355
 
387
 
356
    dirent *d;
388
    dirent *d;
357
    while ((d = readdir(dir)))
389
    while ((d = readdir(dir)))
358
    {
390
    {
359
        if (d->d_name[0] == '.')
391
        if (d->d_name[0] == '.')
360
            continue;
392
            continue;
361
 
393
 
362
        list.push_back(d->d_name);
394
        list.push_back(d->d_name);
363
    }
395
    }
364
    closedir(dir);
396
    closedir(dir);
365
 
397
 
366
    return list;
398
    return list;
367
}
399
}
368
 
400
 
369
string FileTools::GetUniqeFilename(string path, string prefix, string postfix)
401
string FileTools::GetUniqeFilename(string path, string prefix, string postfix)
370
{
402
{
371
    time_t now;
403
    time_t now;
372
    time(&now);
404
    time(&now);
373
 
405
 
374
    string filename = path + prefix + itos(now);
406
    string filename = path + prefix + itos(now);
375
 
407
 
376
    int index = 0;
408
    int index = 0;
377
    while (1)
409
    while (1)
378
    {
410
    {
379
        string file = filename + itos(index) + postfix;
411
        string file = filename + itos(index) + postfix;
380
        if (!Exist(file))
412
        if (!Exist(file))
381
            break;
413
            break;
382
        index++;
414
        index++;
383
    }
415
    }
384
 
416
 
385
    filename += itos(index) + postfix;
417
    filename += itos(index) + postfix;
386
 
418
 
387
    return filename;
419
    return filename;
388
}
420
}
389
 
421
 
390
bool FileTools::SaveFile(string filepath, string data)
422
bool FileTools::SaveFile(string filepath, string data)
391
{
423
{
392
    ofstream destfile(filepath.c_str());
424
    ofstream destfile(filepath.c_str());
393
    if (!destfile.is_open())
425
    if (!destfile.is_open())
394
    {
426
    {
395
        destfile.close();
427
        destfile.close();
396
        return false;
428
        return false;
397
    }
429
    }
398
 
430
 
399
    destfile << data;
431
    destfile << data;
400
 
432
 
401
    destfile.close();
433
    destfile.close();
402
    return true;
434
    return true;
403
}
435
}
404
 
436
 
405
string FileTools::Get(string src)
437
string FileTools::Get(string src)
406
{
438
{
407
    ifstream srcfile(src.c_str());
439
    ifstream srcfile(src.c_str());
408
    if (!srcfile.is_open())
440
    if (!srcfile.is_open())
409
    {
441
    {
410
        srcfile.close();
442
        srcfile.close();
411
        return "";
443
        return "";
412
    }
444
    }
413
 
445
 
414
    string buffer = "";
446
    string buffer = "";
415
    string line;
447
    string line;
416
    while (!srcfile.eof())
448
    while (!srcfile.eof())
417
    {
449
    {
418
        getline(srcfile, line);
450
        getline(srcfile, line);
419
        if (srcfile.eof())
451
        if (srcfile.eof())
420
            break;
452
            break;
421
        buffer += line + "\n";
453
        buffer += line + "\n";
422
    };
454
    };
423
 
455
 
424
    srcfile.close();
456
    srcfile.close();
425
 
457
 
426
    return buffer;
458
    return buffer;
427
}
459
}
428
 
460
 
429
bool FileTools::Copy(string src, string dest)
461
bool FileTools::Copy(string src, string dest)
430
{
462
{
431
    ifstream srcfile(src.c_str());
463
    ifstream srcfile(src.c_str());
432
    if (!srcfile.is_open())
464
    if (!srcfile.is_open())
433
    {
465
    {
434
        srcfile.close();
466
        srcfile.close();
435
        return false;
467
        return false;
436
    }
468
    }
437
 
469
 
438
    ofstream destfile(dest.c_str());
470
    ofstream destfile(dest.c_str());
439
    if (!destfile.is_open())
471
    if (!destfile.is_open())
440
    {
472
    {
441
        destfile.close();
473
        destfile.close();
442
        srcfile.close();
474
        srcfile.close();
443
        return false;
475
        return false;
444
    }
476
    }
445
 
477
 
446
    string line;
478
    string line;
447
    while (!srcfile.eof())
479
    while (!srcfile.eof())
448
    {
480
    {
449
        getline(srcfile, line);
481
        getline(srcfile, line);
450
        if (srcfile.eof())
482
        if (srcfile.eof())
451
            break;
483
            break;
452
        destfile << line << endl;
484
        destfile << line << endl;
453
    };
485
    };
454
 
486
 
455
    destfile.close();
487
    destfile.close();
456
    srcfile.close();
488
    srcfile.close();
457
 
489
 
458
    return true;
490
    return true;
459
}
491
}
460
 
492
 
461
bool FileTools::Exist(string filename)
493
bool FileTools::Exist(string filename)
462
{
494
{
463
    ifstream file(filename.c_str());
495
    ifstream file(filename.c_str());
464
    if (file.is_open())
496
    if (file.is_open())
465
    {
497
    {
466
        file.close();
498
        file.close();
467
        return true;
499
        return true;
468
    }
500
    }
469
 
501
 
470
    return false;
502
    return false;
471
}
503
}
472
 
504
 
473
 
505
 
474
 
506
 
475
 
507
 
476
 
508
 
477
/*
509
/*
478
void bd()
510
void bd()
479
{
511
{
480
         int n,b=0,a[6],i=0,t=0;
512
         int n,b=0,a[6],i=0,t=0;
481
         clrscr();
513
         clrscr();
482
         printf("Conversion from Binary to Decimal\n");
514
         printf("Conversion from Binary to Decimal\n");
483
         printf("Enter Binary Number\n");
515
         printf("Enter Binary Number\n");
484
         scanf("%d",&n);
516
         scanf("%d",&n);
485
         while(n!=0)
517
         while(n!=0)
486
         {
518
         {
487
          a[i]=n%10;
519
          a[i]=n%10;
488
          n=n/10;
520
          n=n/10;
489
          if(a[i]!=1 && a[i]!=0)
521
          if(a[i]!=1 && a[i]!=0)
490
           t=1;
522
           t=1;
491
          i++;
523
          i++;
492
         }
524
         }
493
         a[i]=2;
525
         a[i]=2;
494
         n=1;
526
         n=1;
495
         for(i=0;a[i]!=2;i++)
527
         for(i=0;a[i]!=2;i++)
496
         {
528
         {
497
          b=b+a[i]*n;
529
          b=b+a[i]*n;
498
          n=n*2;
530
          n=n*2;
499
         }
531
         }
500
         if(t==0)
532
         if(t==0)
501
          printf("Decimal Equivalent=%d",B);
533
          printf("Decimal Equivalent=%d",B);
502
         else if(t==1)
534
         else if(t==1)
503
          printf("Entered number is not binary.");
535
          printf("Entered number is not binary.");
504
 
536
 
505
}
537
}
506
 
538
 
507
void db()
539
void db()
508
{
540
{
509
         int dec,bin,n,i=0,a[10];
541
         int dec,bin,n,i=0,a[10];
510
         clrscr();
542
         clrscr();
511
         printf("Conversion from Decimal to Binary\n");
543
         printf("Conversion from Decimal to Binary\n");
512
         printf("Input decimal no.");
544
         printf("Input decimal no.");
513
         scanf("%d",&dec);
545
         scanf("%d",&dec);
514
         do
546
         do
515
         {
547
         {
516
         a[i]=dec%2;
548
         a[i]=dec%2;
517
         dec=dec/2;
549
         dec=dec/2;
518
         i++;
550
         i++;
519
         }while(dec!=0);
551
         }while(dec!=0);
520
         for(n=i-1;n>=0;n--)
552
         for(n=i-1;n>=0;n--)
521
         printf("%d",a[n]);
553
         printf("%d",a[n]);
522
}
554
}
523
 
555
 
524
void doc()
556
void doc()
525
{
557
{
526
         int n,i,a[10];
558
         int n,i,a[10];
527
         clrscr();
559
         clrscr();
528
         printf("Conversion from Decimal to Octal\n");
560
         printf("Conversion from Decimal to Octal\n");
529
         printf("Enter a Decimal number\n");
561
         printf("Enter a Decimal number\n");
530
         scanf("%d",&n);
562
         scanf("%d",&n);
531
         i=0;
563
         i=0;
532
         printf("Octal equavalent of %d is ",n);
564
         printf("Octal equavalent of %d is ",n);
533
         while(n!=0)
565
         while(n!=0)
534
         {
566
         {
535
          a[i]=n%8;
567
          a[i]=n%8;
536
          n=n/8;
568
          n=n/8;
537
          i++;
569
          i++;
538
         }
570
         }
539
         i--;
571
         i--;
540
         for(;i>=0;i--)
572
         for(;i>=0;i--)
541
          printf("%d",a[i]);
573
          printf("%d",a[i]);
542
}
574
}
543
 
575
 
544
void dh(long n)
576
void dh(long n)
545
{
577
{
546
         long i;
578
         long i;
547
         if(n>0)
579
         if(n>0)
548
         {
580
         {
549
          i=n%16;
581
          i=n%16;
550
          n=n/16;
582
          n=n/16;
551
          dh(n);
583
          dh(n);
552
          if(i>=10)
584
          if(i>=10)
553
          {
585
          {
554
           switch(i)
586
           switch(i)
555
           {
587
           {
556
            case 10:
588
            case 10:
557
             printf("A");
589
             printf("A");
558
             break;
590
             break;
559
            case 11:
591
            case 11:
560
             printf("B");
592
             printf("B");
561
             break;
593
             break;
562
            case 12:
594
            case 12:
563
             printf("C");
595
             printf("C");
564
             break;
596
             break;
565
            case 13:
597
            case 13:
566
             printf("D");
598
             printf("D");
567
             break;
599
             break;
568
            case 14:
600
            case 14:
569
             printf("E");
601
             printf("E");
570
             break;
602
             break;
571
            case 15:
603
            case 15:
572
             printf("F");
604
             printf("F");
573
             break;
605
             break;
574
           }
606
           }
575
          }
607
          }
576
          else
608
          else
577
           printf("%ld",i);
609
           printf("%ld",i);
578
         }
610
         }
579
}
611
}
580
 
612
 
581
void od()
613
void od()
582
{
614
{
583
         unsigned long n,i=0,a,p=1,t=0;
615
         unsigned long n,i=0,a,p=1,t=0;
584
         clrscr();
616
         clrscr();
585
         printf("Conversion from Octal to Decimal\n");
617
         printf("Conversion from Octal to Decimal\n");
586
         printf("Enter a Octal number\n");
618
         printf("Enter a Octal number\n");
587
         scanf("%ld",&n);
619
         scanf("%ld",&n);
588
         i=0;
620
         i=0;
589
         printf("Decimal equavalent of %ld",n);
621
         printf("Decimal equavalent of %ld",n);
590
         while(n!=0)
622
         while(n!=0)
591
         {
623
         {
592
          a=n%10;
624
          a=n%10;
593
          if(a>7)
625
          if(a>7)
594
           t=1;
626
           t=1;
595
          n=n/10;
627
          n=n/10;
596
          i=i+a*p;
628
          i=i+a*p;
597
          p=p*8;
629
          p=p*8;
598
         }
630
         }
599
         if(t==0)
631
         if(t==0)
600
          printf("= %ld",i);
632
          printf("= %ld",i);
601
         else if(t==1)
633
         else if(t==1)
602
          printf(" can't be calculated because it is not an Octal Number.\n");
634
          printf(" can't be calculated because it is not an Octal Number.\n");
603
}
635
}
604
 
636
 
605
void ob()
637
void ob()
606
{
638
{
607
         int n,a[6],i=0,t=0;
639
         int n,a[6],i=0,t=0;
608
         clrscr();
640
         clrscr();
609
         printf("Convertion from Octal to Binary.\n");
641
         printf("Convertion from Octal to Binary.\n");
610
         printf("Enter an Octal Number.\n");
642
         printf("Enter an Octal Number.\n");
611
         scanf("%d",&n);
643
         scanf("%d",&n);
612
         while(n!=0)
644
         while(n!=0)
613
         {
645
         {
614
          a[i]=n%10;
646
          a[i]=n%10;
615
          n=n/10;
647
          n=n/10;
616
          if(a[i]>7)
648
          if(a[i]>7)
617
           t=1;
649
           t=1;
618
          i++;
650
          i++;
619
         }
651
         }
620
         i--;
652
         i--;
621
         if(t==0)
653
         if(t==0)
622
          for(;i>=0;i--)
654
          for(;i>=0;i--)
623
          {
655
          {
624
           switch(a[i])
656
           switch(a[i])
625
           {
657
           {
626
            case 0:
658
            case 0:
627
             printf("000");
659
             printf("000");
628
             break;
660
             break;
629
            case 1:
661
            case 1:
630
             printf("001");
662
             printf("001");
631
             break;
663
             break;
632
            case 2:
664
            case 2:
633
             printf("010");
665
             printf("010");
634
             break;
666
             break;
635
            case 3:
667
            case 3:
636
             printf("011");
668
             printf("011");
637
             break;
669
             break;
638
            case 4:
670
            case 4:
639
             printf("100");
671
             printf("100");
640
             break;
672
             break;
641
            case 5:
673
            case 5:
642
             printf("101");
674
             printf("101");
643
             break;
675
             break;
644
            case 6:
676
            case 6:
645
             printf("110");
677
             printf("110");
646
             break;
678
             break;
647
            case 7:
679
            case 7:
648
             printf("111");
680
             printf("111");
649
             break;
681
             break;
650
           }
682
           }
651
          }
683
          }
652
         if(t==1)
684
         if(t==1)
653
          printf("Not a Octal number\n");
685
          printf("Not a Octal number\n");
654
}
686
}
655
 
687
 
656
void bo()
688
void bo()
657
{
689
{
658
         int i=0,a[5],t=0;
690
         int i=0,a[5],t=0;
659
         long int n;
691
         long int n;
660
         clrscr();
692
         clrscr();
661
         printf("Convertion From Binary to Octal\n");
693
         printf("Convertion From Binary to Octal\n");
662
         printf("Enter a Binary number\n");
694
         printf("Enter a Binary number\n");
663
         scanf("%ld",&n);
695
         scanf("%ld",&n);
664
         while(n!=0)
696
         while(n!=0)
665
         {
697
         {
666
          a[i]=n%1000;
698
          a[i]=n%1000;
667
          n=n/1000;
699
          n=n/1000;
668
          if(a[i]>111)
700
          if(a[i]>111)
669
           t=1;
701
           t=1;
670
          i++;
702
          i++;
671
         }
703
         }
672
         i--;
704
         i--;
673
         if(t==0)
705
         if(t==0)
674
          for(;i>=0;i--)
706
          for(;i>=0;i--)
675
          {
707
          {
676
           switch(a[i])
708
           switch(a[i])
677
           {
709
           {
678
            case 0:
710
            case 0:
679
             printf("0");
711
             printf("0");
680
             break;
712
             break;
681
            case 1:
713
            case 1:
682
             printf("1");
714
             printf("1");
683
             break;
715
             break;
684
            case 10:
716
            case 10:
685
             printf("2");
717
             printf("2");
686
             break;
718
             break;
687
            case 11:
719
            case 11:
688
             printf("3");
720
             printf("3");
689
             break;
721
             break;
690
            case 100:
722
            case 100:
691
             printf("4");
723
             printf("4");
692
             break;
724
             break;
693
            case 101:
725
            case 101:
694
             printf("5");
726
             printf("5");
695
             break;
727
             break;
696
            case 110:
728
            case 110:
697
             printf("6");
729
             printf("6");
698
             break;
730
             break;
699
            case 111:
731
            case 111:
700
             printf("7");
732
             printf("7");
701
             break;
733
             break;
702
            default:
734
            default:
703
   printf("\nEntered number is not binary.\nPrinted value is not correct.\n");
735
   printf("\nEntered number is not binary.\nPrinted value is not correct.\n");
704
             break;
736
             break;
705
           }
737
           }
706
          }
738
          }
707
         if(t==1)
739
         if(t==1)
708
          printf("Number is not Binary\n");
740
          printf("Number is not Binary\n");
709
}
741
}
710
 
742
 
711
void bh()
743
void bh()
712
{
744
{
713
         int i=0,a[5],t=0;
745
         int i=0,a[5],t=0;
714
         long int n;
746
         long int n;
715
         clrscr();
747
         clrscr();
716
         printf("Convertion from Binary to Hexadecimal\n");
748
         printf("Convertion from Binary to Hexadecimal\n");
717
         printf("Enter a Binary number\n");
749
         printf("Enter a Binary number\n");
718
         scanf("%ld",&n);
750
         scanf("%ld",&n);
719
         while(n!=0)
751
         while(n!=0)
720
         {
752
         {
721
          a[i]=n%10000;
753
          a[i]=n%10000;
722
          n=n/10000;
754
          n=n/10000;
723
          if(a[i]>1111)
755
          if(a[i]>1111)
724
           t=1;
756
           t=1;
725
          i++;
757
          i++;
726
         }
758
         }
727
         i--;
759
         i--;
728
         if(t==0)
760
         if(t==0)
729
          for(;i>=0;i--)
761
          for(;i>=0;i--)
730
          {
762
          {
731
           switch(a[i])
763
           switch(a[i])
732
           {
764
           {
733
            case 0:
765
            case 0:
734
             printf("0");
766
             printf("0");
735
             break;
767
             break;
736
            case 1:
768
            case 1:
737
             printf("1");
769
             printf("1");
738
             break;
770
             break;
739
            case 10:
771
            case 10:
740
             printf("2");
772
             printf("2");
741
             break;
773
             break;
742
            case 11:
774
            case 11:
743
             printf("3");
775
             printf("3");
744
             break;
776
             break;
745
            case 100:
777
            case 100:
746
             printf("4");
778
             printf("4");
747
             break;
779
             break;
748
            case 101:
780
            case 101:
749
             printf("5");
781
             printf("5");
750
             break;
782
             break;
751
            case 110:
783
            case 110:
752
             printf("6");
784
             printf("6");
753
             break;
785
             break;
754
            case 111:
786
            case 111:
755
             printf("7");
787
             printf("7");
756
             break;
788
             break;
757
            case 1000:
789
            case 1000:
758
             printf("8");
790
             printf("8");
759
             break;
791
             break;
760
            case 1001:
792
            case 1001:
761
             printf("9");
793
             printf("9");
762
             break;
794
             break;
763
            case 1010:
795
            case 1010:
764
             printf("A");
796
             printf("A");
765
             break;
797
             break;
766
            case 1011:
798
            case 1011:
767
             printf("B");
799
             printf("B");
768
             break;
800
             break;
769
            case 1100:
801
            case 1100:
770
             printf("C");
802
             printf("C");
771
             break;
803
             break;
772
            case 1101:
804
            case 1101:
773
             printf("D");
805
             printf("D");
774
             break;
806
             break;
775
            case 1110:
807
            case 1110:
776
             printf("E");
808
             printf("E");
777
             break;
809
             break;
778
            case 1111:
810
            case 1111:
779
             printf("F");
811
             printf("F");
780
             break;
812
             break;
781
            default:
813
            default:
782
     printf("\nEntered number is not binary.\nPrinted value is not correct.\n");
814
     printf("\nEntered number is not binary.\nPrinted value is not correct.\n");
783
             break;
815
             break;
784
           }
816
           }
785
          }
817
          }
786
         if(t==1)
818
         if(t==1)
787
          printf("Number is not Binary\n");
819
          printf("Number is not Binary\n");
788
}
820
}
789
 
821
 
790
void hb()
822
void hb()
791
{
823
{
792
         int i;
824
         int i;
793
         char s[20];
825
         char s[20];
794
         clrscr();
826
         clrscr();
795
         printf("Convertion from Hexadecimal to Binary\n");
827
         printf("Convertion from Hexadecimal to Binary\n");
796
         printf("Enter a Hexadecimal number\n");
828
         printf("Enter a Hexadecimal number\n");
797
         scanf("%s",s);
829
         scanf("%s",s);
798
         //gets(s);
830
         //gets(s);
799
         printf("Binary Equivalent=");
831
         printf("Binary Equivalent=");
800
         for(i=0;s[i]!=NULL;i++)
832
         for(i=0;s[i]!=NULL;i++)
801
         {
833
         {
802
          switch(s[i])
834
          switch(s[i])
803
           {
835
           {
804
            case '0':
836
            case '0':
805
             printf("0000");
837
             printf("0000");
806
             break;
838
             break;
807
            case '1':
839
            case '1':
808
             printf("0001");
840
             printf("0001");
809
             break;
841
             break;
810
            case '2':
842
            case '2':
811
             printf("0010");
843
             printf("0010");
812
             break;
844
             break;
813
            case '3':
845
            case '3':
814
             printf("0011");
846
             printf("0011");
815
             break;
847
             break;
816
            case '4':
848
            case '4':
817
             printf("0100");
849
             printf("0100");
818
             break;
850
             break;
819
            case '5':
851
            case '5':
820
             printf("0101");
852
             printf("0101");
821
             break;
853
             break;
822
            case '6':
854
            case '6':
823
             printf("0110");
855
             printf("0110");
824
             break;
856
             break;
825
            case '7':
857
            case '7':
826
             printf("0111");
858
             printf("0111");
827
             break;
859
             break;
828
            case '8':
860
            case '8':
829
             printf("1000");
861
             printf("1000");
830
             break;
862
             break;
831
            case '9':
863
            case '9':
832
             printf("1001");
864
             printf("1001");
833
             break;
865
             break;
834
            case 'a':
866
            case 'a':
835
            case 'A':
867
            case 'A':
836
             printf("1010");
868
             printf("1010");
837
             break;
869
             break;
838
            case 'b':
870
            case 'b':
839
            case 'B':
871
            case 'B':
840
             printf("1011");
872
             printf("1011");
841
             break;
873
             break;
842
            case 'c':
874
            case 'c':
843
            case 'C':
875
            case 'C':
844
             printf("1100");
876
             printf("1100");
845
             break;
877
             break;
846
            case 'd':
878
            case 'd':
847
            case 'D':
879
            case 'D':
848
             printf("1101");
880
             printf("1101");
849
             break;
881
             break;
850
            case 'e':
882
            case 'e':
851
            case 'E':
883
            case 'E':
852
             printf("1110");
884
             printf("1110");
853
             break;
885
             break;
854
            case 'f':
886
            case 'f':
855
            case 'F':
887
            case 'F':
856
             printf("1111");
888
             printf("1111");
857
             break;
889
             break;
858
            default:
890
            default:
859
       printf("\nEntered number is not Hexadecimal.\nPrinted value is not correct.\n");
891
       printf("\nEntered number is not Hexadecimal.\nPrinted value is not correct.\n");
860
             break;
892
             break;
861
           }
893
           }
862
          }
894
          }
863
}
895
}
864
 
896
 
865
void hd()
897
void hd()
866
{
898
{
867
         int i,a[20];
899
         int i,a[20];
868
         unsigned long int h=0,m=1;
900
         unsigned long int h=0,m=1;
869
         char s[20];
901
         char s[20];
870
         clrscr();
902
         clrscr();
871
         printf("Convertion from Hexadecimal to Decimal\n");
903
         printf("Convertion from Hexadecimal to Decimal\n");
872
         printf("Enter a Hexadecimal number\n");
904
         printf("Enter a Hexadecimal number\n");
873
         scanf("%s",s);
905
         scanf("%s",s);
874
         printf("Decimal Equivalent=");
906
         printf("Decimal Equivalent=");
875
         for(i=0;s[i]!=NULL;i++)
907
         for(i=0;s[i]!=NULL;i++)
876
         {
908
         {
877
          switch(s[i])
909
          switch(s[i])
878
           {
910
           {
879
            case '0':
911
            case '0':
880
             a[i]=0;
912
             a[i]=0;
881
             break;
913
             break;
882
            case '1':
914
            case '1':
883
             a[i]=1;
915
             a[i]=1;
884
             break;
916
             break;
885
            case '2':
917
            case '2':
886
             a[i]=2;
918
             a[i]=2;
887
             break;
919
             break;
888
            case '3':
920
            case '3':
889
             a[i]=3;
921
             a[i]=3;
890
             break;
922
             break;
891
            case '4':
923
            case '4':
892
             a[i]=4;
924
             a[i]=4;
893
             break;
925
             break;
894
            case '5':
926
            case '5':
895
             a[i]=5;
927
             a[i]=5;
896
             break;
928
             break;
897
            case '6':
929
            case '6':
898
             a[i]=6;
930
             a[i]=6;
899
             break;
931
             break;
900
            case '7':
932
            case '7':
901
             a[i]=7;
933
             a[i]=7;
902
             break;
934
             break;
903
            case '8':
935
            case '8':
904
             a[i]=8;
936
             a[i]=8;
905
             break;
937
             break;
906
            case '9':
938
            case '9':
907
             a[i]=9;
939
             a[i]=9;
908
             break;
940
             break;
909
            case 'a':
941
            case 'a':
910
            case 'A':
942
            case 'A':
911
             a[i]=10;
943
             a[i]=10;
912
             break;
944
             break;
913
            case 'b':
945
            case 'b':
914
            case 'B':
946
            case 'B':
915
             a[i]=11;
947
             a[i]=11;
916
             break;
948
             break;
917
            case 'c':
949
            case 'c':
918
            case 'C':
950
            case 'C':
919
             a[i]=12;
951
             a[i]=12;
920
             break;
952
             break;
921
            case 'd':
953
            case 'd':
922
            case 'D':
954
            case 'D':
923
             a[i]=13;
955
             a[i]=13;
924
             break;
956
             break;
925
            case 'e':
957
            case 'e':
926
            case 'E':
958
            case 'E':
927
             a[i]=14;
959
             a[i]=14;
928
             break;
960
             break;
929
            case 'f':
961
            case 'f':
930
            case 'F':
962
            case 'F':
931
             a[i]=15;
963
             a[i]=15;
932
             break;
964
             break;
933
            default:
965
            default:
934
    printf("\nEntered number is not Hexadecimal.\nPrinted value is not correct.\n");
966
    printf("\nEntered number is not Hexadecimal.\nPrinted value is not correct.\n");
935
             break;
967
             break;
936
           }
968
           }
937
         }
969
         }
938
         i--;
970
         i--;
939
         for(;i>=0;i--)
971
         for(;i>=0;i--)
940
         {
972
         {
941
          h=h+a[i]*m;
973
          h=h+a[i]*m;
942
          m=m*16;
974
          m=m*16;
943
         }
975
         }
944
          printf("%ld ",h);
976
          printf("%ld ",h);
945
}
977
}
946
 
978
 
947
void oh(long n)
979
void oh(long n)
948
{
980
{
949
         long i;
981
         long i;
950
         if(n>0)
982
         if(n>0)
951
         {
983
         {
952
          i=n%16;
984
          i=n%16;
953
          n=n/16;
985
          n=n/16;
954
          oh(n);
986
          oh(n);
955
          if(i>=10)
987
          if(i>=10)
956
          {
988
          {
957
           switch(i)
989
           switch(i)
958
           {
990
           {
959
            case 10:
991
            case 10:
960
             printf("A");
992
             printf("A");
961
             break;
993
             break;
962
            case 11:
994
            case 11:
963
             printf("B");
995
             printf("B");
964
             break;
996
             break;
965
            case 12:
997
            case 12:
966
             printf("C");
998
             printf("C");
967
             break;
999
             break;
968
            case 13:
1000
            case 13:
969
             printf("D");
1001
             printf("D");
970
             break;
1002
             break;
971
            case 14:
1003
            case 14:
972
             printf("E");
1004
             printf("E");
973
             break;
1005
             break;
974
            case 15:
1006
            case 15:
975
             printf("F");
1007
             printf("F");
976
             break;
1008
             break;
977
           }
1009
           }
978
          }
1010
          }
979
          else
1011
          else
980
           printf("%ld",i);
1012
           printf("%ld",i);
981
         }
1013
         }
982
}
1014
}
983
 
1015
 
984
void ho()
1016
void ho()
985
{
1017
{
986
         int i,a[20];
1018
         int i,a[20];
987
         unsigned long int h=0,m=1;
1019
         unsigned long int h=0,m=1;
988
         char s[20];
1020
         char s[20];
989
         clrscr();
1021
         clrscr();
990
         printf("Convertion from Hexadecimal to Octal\n");
1022
         printf("Convertion from Hexadecimal to Octal\n");
991
         printf("Enter a Hexadecimal number\n");
1023
         printf("Enter a Hexadecimal number\n");
992
         scanf("%s",s);
1024
         scanf("%s",s);
993
         // Converting hex to dec first
1025
         // Converting hex to dec first
994
         for(i=0;s[i]!=NULL;i++)
1026
         for(i=0;s[i]!=NULL;i++)
995
         {
1027
         {
996
          switch(s[i])
1028
          switch(s[i])
997
           {
1029
           {
998
            case '0':
1030
            case '0':
999
             a[i]=0;
1031
             a[i]=0;
1000
             break;
1032
             break;
1001
            case '1':
1033
            case '1':
1002
             a[i]=1;
1034
             a[i]=1;
1003
             break;
1035
             break;
1004
            case '2':
1036
            case '2':
1005
             a[i]=2;
1037
             a[i]=2;
1006
             break;
1038
             break;
1007
            case '3':
1039
            case '3':
1008
             a[i]=3;
1040
             a[i]=3;
1009
             break;
1041
             break;
1010
            case '4':
1042
            case '4':
1011
             a[i]=4;
1043
             a[i]=4;
1012
             break;
1044
             break;
1013
            case '5':
1045
            case '5':
1014
             a[i]=5;
1046
             a[i]=5;
1015
             break;
1047
             break;
1016
            case '6':
1048
            case '6':
1017
             a[i]=6;
1049
             a[i]=6;
1018
             break;
1050
             break;
1019
            case '7':
1051
            case '7':
1020
             a[i]=7;
1052
             a[i]=7;
1021
             break;
1053
             break;
1022
            case '8':
1054
            case '8':
1023
             a[i]=8;
1055
             a[i]=8;
1024
             break;
1056
             break;
1025
            case '9':
1057
            case '9':
1026
             a[i]=9;
1058
             a[i]=9;
1027
             break;
1059
             break;
1028
            case 'a':
1060
            case 'a':
1029
            case 'A':
1061
            case 'A':
1030
             a[i]=10;
1062
             a[i]=10;
1031
             break;
1063
             break;
1032
            case 'b':
1064
            case 'b':
1033
            case 'B':
1065
            case 'B':
1034
             a[i]=11;
1066
             a[i]=11;
1035
             break;
1067
             break;
1036
            case 'c':
1068
            case 'c':
1037
            case 'C':
1069
            case 'C':
1038
             a[i]=12;
1070
             a[i]=12;
1039
             break;
1071
             break;
1040
            case 'd':
1072
            case 'd':
1041
            case 'D':
1073
            case 'D':
1042
             a[i]=13;
1074
             a[i]=13;
1043
             break;
1075
             break;
1044
            case 'e':
1076
            case 'e':
1045
            case 'E':
1077
            case 'E':
1046
             a[i]=14;
1078
             a[i]=14;
1047
             break;
1079
             break;
1048
            case 'f':
1080
            case 'f':
1049
            case 'F':
1081
            case 'F':
1050
             a[i]=15;
1082
             a[i]=15;
1051
             break;
1083
             break;
1052
            default:
1084
            default:
1053
      printf("\nEntered number is not Hexadecimal.\nPrinted value is not correct.\n");
1085
      printf("\nEntered number is not Hexadecimal.\nPrinted value is not correct.\n");
1054
             break;
1086
             break;
1055
           }
1087
           }
1056
         }
1088
         }
1057
         i--;
1089
         i--;
1058
         for(;i>=0;i--)
1090
         for(;i>=0;i--)
1059
         {
1091
         {
1060
          h=h+a[i]*m;
1092
          h=h+a[i]*m;
1061
          m=m*16;
1093
          m=m*16;
1062
         }
1094
         }
1063
         // Now convering from decimal to octal (h)
1095
         // Now convering from decimal to octal (h)
1064
         i=0;
1096
         i=0;
1065
         printf("Octal equavalent=");
1097
         printf("Octal equavalent=");
1066
         while(h!=0)
1098
         while(h!=0)
1067
         {
1099
         {
1068
          a[i]=h%8;
1100
          a[i]=h%8;
1069
          h=h/8;
1101
          h=h/8;
1070
          i++;
1102
          i++;
1071
         }
1103
         }
1072
         i--;
1104
         i--;
1073
         for(;i>=0;i--)
1105
         for(;i>=0;i--)
1074
          printf("%d",a[i]);
1106
          printf("%d",a[i]);
1075
}*/
1107
}*/
1076
 
1108