I'm almost giving up on this problem.

How to convert an integer to it's hexadecimal equivalent.

I'm not looking to printout the hexadecimal equivalent of the integer in printf() but for a hexadecimal number.

Pyler
0
Junior Poster in Training

I'm almost giving up on this problem.

How to convert an integer to it's hexadecimal equivalent.

I'm not looking to printout the hexadecimal equivalent of the integer in printf() but for a hexadecimal number.

Edited
by Pyler

Jump to PostIt is quite simple if you know the maths behind this.

All these are just bases in which you can write your any number. For example, n = 9 can be written as 1001 in base 2(binary) and it is 9 in base 10(decimal).

How am I writing 9 as …

nitin1
15
Master Poster

It is quite simple if you know the maths behind this.

All these are just bases in which you can write your any number. For example, n = 9 can be written as 1001 in base 2(binary) and it is 9 in base 10(decimal).

How am I writing 9 as 1001 in base 2?

Start with 9 and divide it it with 2. Take Quotient and remainder. Here, Quotient = 4 and remainder = 1. Now, Save this remainder anywhere. Now take quotient = 4 and again divide it by 2. Again, Quotient is 2 and remainder =0. Add this remainder where you have stored initial remainder. Repeat this until you get remainder 1 or 0. Note: Save the last remainder also. Still, you didn't get the answer.

Your answer is: If you read all the remainders from the last remainder to first remainder, that's your answer.

Here is code snippet for binary.

```
Void convertTOBinary(int n)
{
while(n>0)
{
//save this remainder
int remainder = n%2;
n/=2;
}
}
```

So, How to do for Hexadecimal. Can you relate now? When base was2, I was diving by 2, but in your case base is 16. So you will divide by 16 here as per the case. Difference is that in base 2, you can have only 2 remainders, but in Hexa, you can have 16 remainders. Remainders between 0-9 will be as it is, but after 9 it will be like this:

```
10 = A
11 = B
12 = C
.
.
.
.
```

I hope you get the point. Whenever remainder is 10 or 11 or whatever, put if-else condition for A or B or like that. Still facing problem, Feel free to ask your doubts. Hope this helps.

Edited
by nitin1

jwenting
1,839
duckman
Team Colleague

To output in another base, most languages have either built in or 3rd party libraries available to do just that, no need to reinvent the wheel.

Lardmeister
461
Posting Virtuoso

Don't forget that the hexadecimal representation of an integer is a string.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.