-
Notifications
You must be signed in to change notification settings - Fork 0
/
fill_hex_array.c
34 lines (31 loc) · 715 Bytes
/
fill_hex_array.c
1
2
3
4
5
6
7
8
9
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
#include "main.h"
/**
* fill_hex_array - writes the character c to stdout
*
* @bnr: array where is stored the binary.
* @hex: array where is stored the hexadecimal.
* @isupp: integer that determines if the hexadecimal array is
* in uppercase or lowercase letter.
* @limit: size of hex
* Return: binary array.
*/
char *fill_hex_array(char *bnr, char *hex, int isupp, int limit)
{
int op, i, j, toletter;
hex[limit] = '\0';
if (isupp)
toletter = 55;
else
toletter = 87;
for (i = (limit * 4) - 1; i >= 0; i--)
{
for (op = 0, j = 1; j <= 8; j *= 2, i--)
op = ((bnr[i] - '0') * j) + op;
i++;
if (op < 10)
hex[i / 4] = op + 48;
else
hex[i / 4] = op + toletter;
}
return (hex);
}