473,398 Members | 2,343 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,398 software developers and data experts.

%x question


hi!

int digit = 12;
printf("%x\n", digit);
running this code I get 'c' as output? that is the problem?
--
______________________________________
I se the lightat the end, but every time I take a step it's get dim.
Nov 14 '05 #1
8 1421
"Carramba" writes:
int digit = 12;
printf("%x\n", digit);
running this code I get 'c' as output? that is the problem?


What problem? You asked for hexadecimal and you got it.
Nov 14 '05 #2
Well 'c' is 12 in base 16 representation of numbers :-)

Nov 14 '05 #3
Carramba wrote:

hi!

int digit = 12;
printf("%x\n", digit);
running this code I get 'c' as output? that is the problem?


%x is a conversion specifier that makes any of the printf
family of functions to print numbers in hexadecimal.

---

§7.19.6.1#8

o,u,x,X
The unsigned int argument is converted to unsigned octal (o), unsigned
decimal (u), or unsigned hexadecimal notation (x or X) in the style
dddd; the letters abcdef are used for x conversion and the letters
ABCDEF for X conversion. The precision specifies the minimum number of
digits to appear; if the value being converted can be represented in
fewer digits, it is expanded with leading zeros. The default precision
is 1. The result of converting a zero value with a precision of zero is
no characters.

---

<ot>
Decimal Hexadecimal Binary
-------------------------------
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

Visualize an odometer when reading the above table.
(An odometer records the distance that a vehicle travels.)
Read up on hexadecimal and learn to count in
these number systems.

Decimal -- base-10
Hexadecimal -- base-16
Binary -- base-2

All this means is that decimal has 10 digits
that one can use to represent numbers. Binary uses 2 digits.
Hexadecimal uses 16 digits to represent numbers (0 through F).
Yes, A, B, C, D, E, and F are treated as digits in hex.

The last digit in decimal is 9, that in binary is 1, and
that in hexadecimal is F. "10" in any number system
always comes after the last digit. This means
decimal 10 is not the same as hex 10 or binary 10.

Remember never to mix number systems in operations.

Suggested reading:
http://mathworld.wolfram.com/Base.html
http://mathworld.wolfram.com/Hexadecimal.html
http://mathworld.wolfram.com/Binary.html
</ot>

Regards,
Jonathan.

--
"We must do something. This is something. Therefore, we must do this."
- Keith Thompson
Nov 14 '05 #4
On Sun, 30 Jan 2005 17:22:43 +0100, Carramba <no****@privet.net>
wrote:
int digit = 12;
printf("%x\n", digit);
running this code I get 'c' as output? that is the problem?


What do you want it to output?

I'd write it as:
printf("0x%02X\n", digit);
which produces:
0x0C

Nick.

Nov 14 '05 #5
Nick Austin wrote:
On Sun, 30 Jan 2005 17:22:43 +0100, Carramba <no****@privet.net>
wrote:

int digit = 12;
printf("%x\n", digit);
running this code I get 'c' as output? that is the problem?

What do you want it to output?

I'd write it as:
printf("0x%02X\n", digit);
which produces:
0x0C


Note: In C99, the '#' flag can be used to obtain alternate forms
of display; especially, octal numbers start _always_ with at least
one leading '0' and hexadecimal numbers start with leading "0x"
or "0X", i.e.
printf("%#02x\n", digit);
printf("%#02X\n", digit);
are possible alternatives.

Cheers
Michael
--
E-Mail: Mine is an /at/ gmx /dot/ de address.
Nov 14 '05 #6
On Sun, 30 Jan 2005 19:09:39 +0100, Michael Mair
<Mi**********@invalid.invalid> wrote:
Note: In C99, the '#' flag can be used to obtain alternate forms
of display; especially, octal numbers start _always_ with at least
one leading '0' and hexadecimal numbers start with leading "0x"
or "0X", i.e.
printf("%#02x\n", digit);
printf("%#02X\n", digit);
are possible alternatives.


Two points:

1) This works in C89/C90 as well.
2) The hex conversions print a plain 0 when the value is zero,
regardless of the # flag.

--
Eric Amick
Columbia, MD
Nov 14 '05 #7
Eric Amick wrote:
On Sun, 30 Jan 2005 19:09:39 +0100, Michael Mair
<Mi**********@invalid.invalid> wrote:

Note: In C99, the '#' flag can be used to obtain alternate forms
of display; especially, octal numbers start _always_ with at least
one leading '0' and hexadecimal numbers start with leading "0x"
or "0X", i.e.
printf("%#02x\n", digit);
printf("%#02X\n", digit);
are possible alternatives.

Two points:

1) This works in C89/C90 as well.


Thanks -- somehow, I was of the (mistaken) opinion that # had come
in with C99.
2) The hex conversions print a plain 0 when the value is zero,
regardless of the # flag.


Once again, thank you :-)
Cheers
Michael
--
E-Mail: Mine is an /at/ gmx /dot/ de address.
Nov 14 '05 #8

"Carramba" <no****@privet.net> wrote in message news:opslfbr5bk5plaj0@big...

hi!

int digit = 12;
printf("%x\n", digit);
running this code I get 'c' as output? that is the problem?


No, it's not a problem. The output is correct. '%x'
tells 'printf()' to output the corresponding argument
in hexadecimal notation, in which decimal 12 == hex c.
(note: if you want the alpha hex digits in upper case,
use '%X')

If you want decimal output, use '%d' for type 'int'.

Which C book(s) are you reading?

-Mike
Nov 14 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Mohammed Mazid | last post by:
Can anyone please help me on how to move to the next and previous question? Here is a snippet of my code: Private Sub cmdNext_Click() End Sub Private Sub cmdPrevious_Click() showrecord
3
by: Stevey | last post by:
I have the following XML file... <?xml version="1.0"?> <animals> <animal> <name>Tiger</name> <questions> <question index="0">true</question> <question index="1">true</question> </questions>
7
by: nospam | last post by:
Ok, 3rd or is it the 4th time I have asked this question on Partial Types, so, since it seems to me that Partial Types is still in the design or development stages at Microsoft, I am going to ask...
3
by: Ekqvist Marko | last post by:
Hi, I have one Access database table including questions and answers. Now I need to give answer id automatically to questionID column. But I don't know how it is best (fastest) to do? table...
10
by: glenn | last post by:
I am use to programming in php and the way session and post vars are past from fields on one page through to the post page automatically where I can get to their values easily to write to a...
10
by: Rider | last post by:
Hi, simple(?) question about asp.net configuration.. I've installed ASP.NET 2.0 QuickStart Sample successfully. But, When I'm first start application the follow message shown. ========= Server...
53
by: Jeff | last post by:
In the function below, can size ever be 0 (zero)? char *clc_strdup(const char * CLC_RESTRICT s) { size_t size; char *p; clc_assert_not_null(clc_strdup, s); size = strlen(s) + 1;
56
by: spibou | last post by:
In the statement "a *= expression" is expression assumed to be parenthesized ? For example if I write "a *= b+c" is this the same as "a = a * (b+c)" or "a = a * b+c" ?
2
by: Allan Ebdrup | last post by:
Hi, I'm trying to render a Matrix question in my ASP.Net 2.0 page, A matrix question is a question where you have several options that can all be rated according to several possible ratings (from...
3
by: Zhang Weiwu | last post by:
Hello! I wrote this: ..required-question p:after { content: "*"; } Corresponding HTML: <div class="required-question"><p>Question Text</p><input /></div> <div...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.