473,507 Members | 2,377 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

convert unsigned to char

how to convert unsigned to char?

Ref: http://www.thescripts.com/forum/thread477545.html

how do I print without the leading ffffff (yet the result should be
char*)?
Dec 14 '07 #1
8 4755
AGRAJA wrote:
how to convert unsigned to char?

Ref: http://www.thescripts.com/forum/thread477545.html
Don't reference a webpage, ask us a question.
Dec 14 '07 #2
AGRAJA wrote:
>
how to convert unsigned to char?
int main (void)
{
unsigned u = 0;
char c = (char)u;

return 0;
}

--
pete
Dec 14 '07 #3
AGRAJA wrote:
how to convert unsigned to char?
Use the cast operator: (char)
Ref: http://www.thescripts.com/forum/thread477545.html

how do I print without the leading ffffff (yet the result should be
char*)?
Printing a pointer type requires the "%p" format specifier. On the
machines I use most often, getting lots of leading 'f's is pretty much
unavoidable when using %p with valid pointer values. However, are you
sure you want the result to be char*? In context, I'd have expected that
you wanted to print a char, not a char*.

If that's the case, then you should use either "%d" or "%u" format
specifier, depending upon whether or not char is signed (if CHAR_MIN <
0, then char is a signed type). Either way, you're absolutely guaranteed
to not get any 'f's in the output. :-)

However, I suspect that what you really want is to get no 'f's despite
using the "%x" specifier. On most implementations where 'char' is
unsigned, you're extremely unlikely to get leading f's when printing a
char value.

Therefore, I assume that you're using an implementation where 'char' is
signed. You still won't get many leading 'f's on most implementations,
unless the value you're converting to 'char' is greater than CHAR_MAX.
Don't do that! Performing such a conversion will either generate an
implementation-defined result, or cause an implementation-defined signal
to be raised. Either way, it's generally not a good thing to do. It's
likely to result in a negative number; if you convert that number to
unsigned, so that it can be printed using the "%x" format, then the
conversion will generally result in lots of leading 'f's.

I'd recommend using 'unsigned char' rather than 'char' for such purposes.
Dec 14 '07 #4
pete wrote:
AGRAJA wrote:
>how to convert unsigned to char?

int main (void) {
unsigned u = 0;
char c = (char)u;

return 0;
}
int main (void) {
unsigned u = 0;
char c;

c = u; /* provided that u value <= CHAR_MAX */
return 0;
}

No cast needed. The error also happens with a cast.

--
Chuck F (cbfalconer at maineline dot net)
<http://cbfalconer.home.att.net>
Try the download section.

--
Posted via a free Usenet account from http://www.teranews.com

Dec 14 '07 #5
James Kuyper <ja*********@verizon.netwrites:
AGRAJA wrote:
>how to convert unsigned to char?

Use the cast operator: (char)
A cast is neither necessary nor helpful. Just assign it; the
conversion is implicit.
>Ref: http://www.thescripts.com/forum/thread477545.html

how do I print without the leading ffffff (yet the result should be
char*)?

Printing a pointer type requires the "%p" format specifier. On the
machines I use most often, getting lots of leading 'f's is pretty much
unavoidable when using %p with valid pointer values. However, are you
sure you want the result to be char*? In context, I'd have expected
that you wanted to print a char, not a char*.
Neither the original post nor the cited web page mentions char* or
"%p".

[...]

--
Keith Thompson (The_Other_Keith) <ks***@mib.org>
Looking for software development work in the San Diego area.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Dec 15 '07 #6
Keith Thompson wrote:
Neither the original post nor the cited web page mentions char* or
"%p".
The OP did indeed mention char* (and you quoted him):
>>how do I print without the leading ffffff (yet the result should be
char*)?
What he meant by this, I have no idea.

Phil
Dec 15 '07 #7
Keith Thompson wrote:
James Kuyper <ja*********@verizon.netwrites:
>AGRAJA wrote:
>>how to convert unsigned to char?
Use the cast operator: (char)

A cast is neither necessary nor helpful. Just assign it; the
conversion is implicit.
While that is true in an assignment context, the question as posed was
about conversion in general.
>>Ref: http://www.thescripts.com/forum/thread477545.html

how do I print without the leading ffffff (yet the result should be
char*)?
Printing a pointer type requires the "%p" format specifier. On the
machines I use most often, getting lots of leading 'f's is pretty much
unavoidable when using %p with valid pointer values. However, are you
sure you want the result to be char*? In context, I'd have expected
that you wanted to print a char, not a char*.

Neither the original post nor the cited web page mentions char* or
"%p".
???
"... (yet the result should be char*)?"

I don't know what the OP intended that to mean. The result of a
conversion to char is char, by definition. The result of a C expression
that prints something by calling printf() is a count of the characters
printed. The result, in a more informal sense, of printing something is
the appearance of a set of characters on the display device. I can't
figure out any meaning of "the result" which fits this context, for
which char* is the appropriate type.

However, since he DID mention char*, I decided to say something about
char*, even if what I said probably had nothing to do with what he
actually wanted. That was my (probably overly subtle) way of pointing
out to him that his comment about char* was unclear.

Dec 15 '07 #8
James Kuyper <ja*********@verizon.netwrites:
Keith Thompson wrote:
>James Kuyper <ja*********@verizon.netwrites:
>>AGRAJA wrote:
how to convert unsigned to char?
Use the cast operator: (char)

A cast is neither necessary nor helpful. Just assign it; the
conversion is implicit.

While that is true in an assignment context, the question as posed was
about conversion in general.
Yes, but in most cases conversion from one arithmetic type to another
doesn't require a cast.
>>>Ref: http://www.thescripts.com/forum/thread477545.html

how do I print without the leading ffffff (yet the result should be
char*)?
Printing a pointer type requires the "%p" format specifier. On the
machines I use most often, getting lots of leading 'f's is pretty much
unavoidable when using %p with valid pointer values. However, are you
sure you want the result to be char*? In context, I'd have expected
that you wanted to print a char, not a char*.

Neither the original post nor the cited web page mentions char* or
"%p".

???
"... (yet the result should be char*)?"
Whoops, I missed that. D'oh!
I don't know what the OP intended that to mean. The result of a
conversion to char is char, by definition. The result of a C
expression that prints something by calling printf() is a count of the
characters printed. The result, in a more informal sense, of printing
something is the appearance of a set of characters on the display
device. I can't figure out any meaning of "the result" which fits this
context, for which char* is the appropriate type.

However, since he DID mention char*, I decided to say something about
char*, even if what I said probably had nothing to do with what he
actually wanted. That was my (probably overly subtle) way of pointing
out to him that his comment about char* was unclear.
I suspect the OP wanted a string.

--
Keith Thompson (The_Other_Keith) <ks***@mib.org>
Looking for software development work in the San Diego area.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Dec 15 '07 #9

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

Similar topics

3
31487
by: Siemel Naran | last post by:
Hi. Is there a way to convert the type signed int to the type unsigned int, char to unsigned char, signed char to unsigned char, and so on for all the fundamental integer types? Something like ...
13
7873
by: Bryan Parkoff | last post by:
I have two variables: "char A" and "short B". I can be able to convert from A to B using explicit case conversion with no problem like "B = short (A);". Right now, I have two variables: "char T"...
7
13054
by: Golan | last post by:
Hi, I need to convert a Binary value to Decimal. I've been told that the value is an unsigned one. How can I do this? I use memcpy into an unsigned char variable, but when I print the value I got...
7
7075
by: whatluo | last post by:
Hi, all I'm now working on a program which will convert dec number to hex and oct and bin respectively, I've checked the clc but with no luck, so can anybody give me a hit how to make this done...
16
10081
by: Dave | last post by:
Hi all, I have a 4 byte char array with the binary data for two 16-bit signed integers in it like this: Index 3 2 1 0 Data Bh Bl Ah Al Where Bh is the high byte of signed 16-bit...
65
21321
by: kyle.tk | last post by:
I am trying to write a function to convert an ipv4 address that is held in the string char *ip to its long value equivalent. Here is what I have right now, but I can't seem to get it to work. ...
24
14896
by: cedarson | last post by:
I am having trouble writing a simple code that will convert an int ( 487 for example ) to binary form just for the sake of printing the binary. Can someone please help? Thanks!
10
26562
by: sposes | last post by:
Im very much a newbie but perhaps somehone can help me. Ive been searching for a way to convert a std::string to a unsigned char* The situation is I have a function that wants a unsigned char*...
14
13427
by: rtillmore | last post by:
Hello, I did a quick google search and nothing that was returned is quite what I am looking for. I have a 200 character hexadecimal string that I need to convert into a 100 character string. ...
0
7223
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
7319
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
7485
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
1
5042
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
4702
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3179
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
1542
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
1
760
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
412
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

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.