472,780 Members | 1,186 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

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

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 4613
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
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
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
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
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
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
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
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
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
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
by: Rina0 | last post by:
Cybersecurity engineering is a specialized field that focuses on the design, development, and implementation of systems, processes, and technologies that protect against cyber threats and...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
by: erikbower65 | last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps: 1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal. 2. Connect to...
0
by: erikbower65 | last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA: 1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
14
DJRhino1175
by: DJRhino1175 | last post by:
When I run this code I get an error, its Run-time error# 424 Object required...This is my first attempt at doing something like this. I test the entire code and it worked until I added this - If...
5
by: DJRhino | last post by:
Private Sub CboDrawingID_BeforeUpdate(Cancel As Integer) If = 310029923 Or 310030138 Or 310030152 Or 310030346 Or 310030348 Or _ 310030356 Or 310030359 Or 310030362 Or...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
0
by: lllomh | last post by:
How does React native implement an English player?
0
by: Mushico | last post by:
How to calculate date of retirement from date of birth

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.