Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > conversion into hexadecimal values

Reply
Thread Tools

conversion into hexadecimal values

 
 
sweeet_addiction16@yahoo.com
Guest
Posts: n/a
 
      08-30-2007
hello
im programming in c.i have to write about 100 hexadecimal values in to
a file. how do i do it?pls help me

 
Reply With Quote
 
 
 
 
osmium
Guest
Posts: n/a
 
      08-30-2007
<(E-Mail Removed)> wrote:

> im programming in c.i have to write about 100 hexadecimal values in to
> a file. how do i do it?pls help me


Computer files consist of 1's and 0's. Hexadecimal is a *representation* of
a number. I suggest you read the article in the link,reformulate your
question if you still have one, and post again.

http://en.wikipedia.org/wiki/Hexadecimal


 
Reply With Quote
 
 
 
 
Chris Dollin
Guest
Posts: n/a
 
      08-30-2007
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:

> hello
> im programming in c.i have to write about 100 hexadecimal values in to
> a file. how do i do it?pls help me


Pls hlp s b spllgn ll r wrds t prprl. Thk w.

There are no "hexadecimal values"; there are integer values which may be
represented in hexadecimal. If you have a (n unsigned) value you want to
write in hexadecimal, you can use the %x format conversion of [f]printf.
If you have several, you can write them one at a time, and it would
probably make sense to use a loop to do this.

If you're not familiar with `[f]printf` and format conversions, become
so: they'll be documented in any decent C book, your man pages if you're
on a Unixy box, and you can probably google for them too.

--
I "ae oe" OI

Hewlett-Packard Limited Cain Road, Bracknell, registered no:
registered office: Berks RG12 1HN 690597 England

 
Reply With Quote
 
Richard Heathfield
Guest
Posts: n/a
 
      08-30-2007
Chris Dollin said:

<snip>

> There are no "hexadecimal values";


You could, however, be forgiven for thinking there are, if you were
reading the C Standard. It is a little loose in its terminology at
times.

<snip>

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
 
Reply With Quote
 
sweeet_addiction16@yahoo.com
Guest
Posts: n/a
 
      08-30-2007
On Aug 30, 8:03 pm, "osmium" <(E-Mail Removed)> wrote:
> <(E-Mail Removed)> wrote:
> > im programming in c.i have to write about 100 hexadecimal values in to
> > a file. how do i do it?pls help me

>
> Computer files consist of 1's and 0's. Hexadecimal is a *representation* of
> a number. I suggest you read the article in the link,reformulate your
> question if you still have one, and post again.
>
> http://en.wikipedia.org/wiki/Hexadecimal



im sorry ..may be my question wasnt tht clear.i have to write the
following values into a file(say using fwrite)

4d 54 68 64 00 00 00 06 00 00 00 01 00 80 4d 54 72 6b 00 00 00 8c 00
ff 58
04 04 02 30 08 00 ff 59 02 00 00 00 90 3c 28 81 00 90 3c 00 00 90 3c
1e 81
00 90 3c 00 00 90 43 2d 81 00 90 43 00 00 90 43 32 81 00 90 43 00 00
90 45
2d 81 00 90 45 00 00 90 45 32 81 00 90 45 00 00 90 43 23 82 00 90 43
00 00
90 41 32 81 00 90 41 00 00 90 41 2d 81 00 90 41 00 00 90 40 32 40 90
40 00
40 90 40 28 40 90 40 00 40 90 3e 2d 40 90 3e 00 40 90 3e 32 40 90 3e
00 40
90 3c 1e 82 00 90 3c 00 00 ff 2f 00
all these values are to be written into a file
how do i do it?

 
Reply With Quote
 
Walter Roberson
Guest
Posts: n/a
 
      08-30-2007
In article <(E-Mail Removed). com>,
<(E-Mail Removed)> wrote:
>im sorry ..may be my question wasnt tht clear.i have to write the
>following values into a file(say using fwrite)


> 4d 54 68 64 00 00 00 06 00 00 00 01 00 80 4d 54 72 6b 00 00 00 8c 00
>ff 58

[...]

>all these values are to be written into a file
>how do i do it?


Code fragment:

unsigned char outputbuffer[] = {
0x4d, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x01, 0x00, 0x80, 0x4d, 0x54, 0x72, 0x6b, 0x00, 0x00, 0x00, 0x8c, [etc]
};

filestream = fopen('filename', 'w');
fwrite(outputbuffer, sizeof outputbuffer, 1, filestream);
--
All is vanity. -- Ecclesiastes
 
Reply With Quote
 
Ben Pfaff
Guest
Posts: n/a
 
      08-30-2007
http://www.velocityreviews.com/forums/(E-Mail Removed)-cnrc.gc.ca (Walter Roberson) writes:

> filestream = fopen('filename', 'w');


Both of these should be "string literals", not 'character
constants'.
--
char a[]="\n .CJacehknorstu";int putchar(int);int main(void){unsigned long b[]
={0x67dffdff,0x9aa9aa6a,0xa77ffda9,0x7da6aa6a,0xa6 7f6aaa,0xaa9aa9f6,0x11f6},*p
=b,i=24;for(;p+=!*p;*p/=4)switch(0[p]&3)case 0:{return 0;for(p--;i--;i--)case+
2:{i++;if(i)break;else default:continue;if(0)case 1utchar(a[i&15]);break;}}}
 
Reply With Quote
 
Walter Roberson
Guest
Posts: n/a
 
      08-30-2007
In article <(E-Mail Removed)>,
Ben Pfaff <(E-Mail Removed)> wrote:
>(E-Mail Removed)-cnrc.gc.ca (Walter Roberson) writes:


>> filestream = fopen('filename', 'w');

>
>Both of these should be "string literals", not 'character
>constants'.


Opps, you are right. I've been programming in Matlab a lot lately,
which uses '' for string literals.
--
There are some ideas so wrong that only a very intelligent person
could believe in them. -- George Orwell
 
Reply With Quote
 
CBFalconer
Guest
Posts: n/a
 
      08-30-2007
(E-Mail Removed) wrote:
>
> im programming in c.i have to write about 100 hexadecimal values
> in to a file. how do i do it?pls help me


This may be helpful:

/* Routines to display values in various bases */
/* with some useful helper routines. */
/* by C.B. Falconer, 19 Sept. 2001 */
/* Released to public domain. Attribution appreciated */

#include <stdio.h>
#include <string.h>
#include <limits.h> /* ULONG_MAX etc. */

/* ======================= */
/* reverse string in place */
size_t revstring(char *stg)
{
char *last, temp;
size_t lgh;

lgh = strlen(stg);
if (lgh > 1) {
last = stg + lgh; /* points to '\0' */
while (last-- > stg) {
temp = *stg; *stg++ = *last; *last = temp;
}
}
return lgh;
} /* revstring */

/* ============================================ */
/* Mask and convert digit to hex representation */
/* Output range is 0..9 and a..f only */
int hexify(unsigned int value)
{
static char hexchars[] = "0123456789abcdef";

return (hexchars[value & 0xf]);
} /* hexify */

/* ================================================== */
/* convert unsigned number to string in various bases */
/* 2 <= base <= 16, controlled by hexify() */
/* Returns actual output string length */
size_t basedisplay(unsigned long number, unsigned int base,
char *stg, size_t maxlgh)
{
char *s;

/* assert (stg[maxlgh]) is valid storage */
s = stg;
if (maxlgh && base)
do {
*s = hexify(number % base);
s++;
} while (--maxlgh && (number = number / base) );
*s = '\0';
revstring(stg);
return (s - stg);
} /* basedisplay */

/* ================================================ */
/* convert signed number to string in various bases */
/* 2 <= base <= 16, controlled by hexify() */
/* Returns actual output string length */
size_t signbasedisplay(long number, unsigned int base,
char * stg, size_t maxlgh)
{
char *s;
size_t lgh;
unsigned long n;

s = stg; lgh = 0;
n = (unsigned long)number;
if (maxlgh && (number < 0L)) {
*s++ = '-';
maxlgh--;
n = -(unsigned long)number;
lgh = 1;
}
lgh = lgh + basedisplay(n, base, s, maxlgh);
return lgh;
} /* signbaseddisplay */


/* ==================== */
/* flush to end-of-line */
int flushln(FILE *f)
{
int ch;

while ('\n' != (ch = fgetc(f)) && (EOF != ch)) /* more */;
return ch;
} /* flushln */

/* ========== END of generically useful routines ============ */

/* ========================= */
/* Prompt and await <return> */
static void nexttest(char *prompt)
{
static char empty[] = "";

if (NULL == prompt) prompt = empty;
printf("\nHit return for next test: %s", prompt);
fflush(stdout);
flushln(stdin);
} /* nexttest */

/* ============================== */
/* Display a value and its length */
static void show(char *caption, int sz, char *stg)
{

if ((unsigned)sz != strlen(stg))
printf("Something is wrong with the sz value\n");
printf("%s: sz = %2d \"%s\"\n", caption, sz, stg);
} /* show */

/* =========== */
/* exercise it */
int main(void)
{
#define LGH 40
#define VALUE 1234567890

char stg[LGH];
unsigned int base;
int sz;

printf("\nExercising basedisplay routine\n");
printf("\nbase sz value\n");
for (base = 2; base <= 16; base++) {
sz = (int)basedisplay(VALUE, base, stg, LGH - 1);
printf("%2d %2d %s\n", base, sz, stg);
}

nexttest("ULONG_MAX");
for (base = 8; base <= 16; base++) {
sz = (int)basedisplay(ULONG_MAX, base, stg, LGH - 1);
printf("%2d %2d %s\n", base, sz, stg);
}

basedisplay(0, 10, stg, 3);
printf("\nzero %s\n", stg);

basedisplay(VALUE, 10, stg, 3);
printf("3 lsdigits only, base 10 %s\n", stg);

printf("\nBad calls:\n");

sz = (int)basedisplay(VALUE, 10, stg, 0);
show("0 length field", sz, stg);

sz = (int)basedisplay(VALUE, 1, stg, 20);
show("base 1, lgh 20", sz, stg);

sz = (int)basedisplay(VALUE, 0, stg, 20);
show("base 0, lgh 20", sz, stg);

sz = (int)signbasedisplay(-1234, 10, stg, 0);
show("0 lgh fld, -ve", sz, stg);

sz = (int)signbasedisplay(-1234, 10, stg, 2);
show("truncate -1234", sz, stg);

nexttest("System limits");

sz = (int)signbasedisplay(SCHAR_MIN, 10, stg, 20);
show("SCHAR_MIN ", sz, stg);

sz = (int)signbasedisplay(SCHAR_MAX, 10, stg, 20);
show("SCHAR_MAX ", sz, stg);

sz = (int)signbasedisplay(UCHAR_MAX, 10, stg, 20);
show("UCHAR_MAX ", sz, stg);

sz = (int)signbasedisplay(CHAR_MIN, 10, stg, 20);
show("CHAR_MIN ", sz, stg);

sz = (int)signbasedisplay(CHAR_MAX, 10, stg, 20);
show("CHAR_MAX ", sz, stg);

sz = (int)signbasedisplay(MB_LEN_MAX, 10, stg, 20);
show("MB_LEN_MAX ", sz, stg);

sz = (int)signbasedisplay(SHRT_MIN, 10, stg, 20);
show("SHRT_MIN ", sz, stg);

sz = (int)signbasedisplay(SHRT_MAX, 10, stg, 20);
show("SHRT_MAX ", sz, stg);

sz = (int)signbasedisplay(USHRT_MAX, 10, stg, 20);
show("USHRT_MAX ", sz, stg);

sz = (int)signbasedisplay(INT_MIN, 10, stg, 20);
show("INT_MIN ", sz, stg);

sz = (int)signbasedisplay(INT_MAX, 10, stg, 20);
show("INT_MAX ", sz, stg);

sz = (int)signbasedisplay(INT_MAX, 10, stg, 20);
show("INT_MAX ", sz, stg);

sz = (int) basedisplay(UINT_MAX, 10, stg, 20);
show("UINT_MAX ", sz, stg);

sz = (int)signbasedisplay(LONG_MIN, 10, stg, 20);
show("LONG_MIN ", sz, stg);

sz = (int)signbasedisplay(LONG_MAX, 10, stg, 20);
show("LONG_MAX ", sz, stg);

sz = (int) basedisplay(ULONG_MAX, 10, stg, 20);
show("ULONG_MAX ", sz, stg);

nexttest("DONE");
return 0;
} /* main */

--
Chuck F (cbfalconer at maineline dot net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net>



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

 
Reply With Quote
 
Tor Rustad
Guest
Posts: n/a
 
      08-31-2007
(E-Mail Removed) wrote:
> hello
> im programming in c.i have to write about 100 hexadecimal values in to
> a file. how do i do it?pls help me


I guess you want to write binary data as a hex string...


void write_hex(FILE *out, unsigned char *binary, size_t binary_len)
{
size_t i;

for (i=0; i<binary_len; i++)
fprintf(out, "%02X", (int)binary[i]);
}

--
Tor <torust [at] online [dot] no>
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Binary to Hexadecimal Conversion lei Java 10 12-30-2006 05:02 PM
Conversion from Hexadecimal number into Decimal number dharmdeep@gmail.com C Programming 14 11-16-2006 07:51 PM
Hexadecimal Conversion in Python Bengt Richter Python 10 11-02-2005 10:38 PM
hexadecimal to float conversion pavithra.eswaran@gmail.com C Programming 4 08-20-2005 04:53 AM
Hexadecimal to Binary File Conversion Utility Victor Hannak VHDL 0 02-20-2004 08:54 PM



Advertisments