473,232 Members | 1,400 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,232 software developers and data experts.

conversion to quadword

hi all,
How can I convert an Integer (int data type) and an unsigned char
data type to a quadword? I want to know the conversion mechanism....

Advance thanks for the help.
Nov 29 '07 #1
9 5971
arunmib wrote:
>
How can I convert an Integer (int data type) and an unsigned char
data type to a quadword? I want to know the conversion mechanism.
What is a quadword?

--
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

Nov 29 '07 #2
arunmib <ar*****@gmail.comwrites:
How can I convert an Integer (int data type) and an unsigned char
data type to a quadword? I want to know the conversion mechanism....
What exactly is a "quadword"? C defines no such type; it doesn't even
define what a "word" is. Explain what a quadword is, and we may be
able to tell you how to convert to it.

--
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"
Nov 29 '07 #3

"arunmib" <ar*****@gmail.comwrote in message
news:b8**********************************@d27g2000 prf.googlegroups.com...
hi all,
How can I convert an Integer (int data type) and an unsigned char
data type to a quadword? I want to know the conversion mechanism....
a word like 'quadword' will annoy the standards-heads...

as will defining such un-standardly things like 'type conversion' (too
impure and vulgar for this high and refined group, which has moved above and
beyond such primitive and carnal things as 'computers' and 'operating
systems'...).

so, in these here parts, 'long long' or 'uint64_t' are probably better
terms...

and, it suffices only to know that it does convert, not to concern outselves
with such esoteric and sinister concepts as 'sign extension' and 'zero
extension' (which may not neccissarily be the case on some or another arch
that someone can drag up from somewhere or another).

or such...

Advance thanks for the help.


Nov 29 '07 #4
arunmib wrote:
hi all,
How can I convert an Integer (int data type) and an unsigned char
data type to a quadword? I want to know the conversion mechanism....

Advance thanks for the help.

quadword in Intel notation is a 64 bit integer.

In 32 bit systems you can convert ints into quadwords by using
an unnecessary cast

int i;
long long a = (long long)i;

or just

long long a = i;

In intel architecture this is a sign extension of the 32 bits
into 64 bits
movsx %eax,%rax

using gcc's notation.

For unsigned chars you need an extension with ZERO extend.

In C you would write:

unsigned char c;
long long a = (long long)c;

movzxq %al,%rax

if I remember correctly.
--
jacob navia
jacob at jacob point remcomp point fr
logiciels/informatique
http://www.cs.virginia.edu/~lcc-win32
Nov 29 '07 #5
arunmib wrote:
hi all,
How can I convert an Integer (int data type) and an unsigned char
data type to a quadword? I want to know the conversion mechanism....

Advance thanks for the help.
I think that veryone has been assuming that what you really wanted to
know was the name the C quadword type. As other people have already
said, while any particular implementation of C might or might not have
an integer type which is 4 words long, the C standard does not specify
which one it is.

However, if you already know the name for the quadword type in a given
implementation of C, it may be that all you're really asking is what you
actually said: "How can I convert ... to a quadword"? If so, the answer
is that the you do it precisely the same way as any other conversion:

typedef implementation_specific_type quadword;
typedef desired_integer_type Integer;

Integer i = 42;
quadword q = (quadword)i;
unsigned char c = 'c';
q = (quadword)c;
Nov 29 '07 #6
James Kuyper <ja*********@verizon.netwrites:
arunmib wrote:
> How can I convert an Integer (int data type) and an unsigned char
data type to a quadword? I want to know the conversion mechanism....

I think that veryone has been assuming that what you really wanted to
know was the name the C quadword type. As other people have already
said, while any particular implementation of C might or might not have
an integer type which is 4 words long, the C standard does not specify
which one it is.

However, if you already know the name for the quadword type in a given
implementation of C, it may be that all you're really asking is what
you actually said: "How can I convert ... to a quadword"? If so, the
answer is that the you do it precisely the same way as any other
conversion:

typedef implementation_specific_type quadword;
typedef desired_integer_type Integer;

Integer i = 42;
quadword q = (quadword)i;
unsigned char c = 'c';
q = (quadword)c;
Assuming that "quadword" is an integer type, the casts are
unnecessary. A value can be converted from any numeric type to any
other numeric type with a simple assignment; it will be converted
implicitly:

Integer i = 42;
quadword q = i;
unsighed char c = 'c';
q = c;

If "quadword" *isn't* a numeric type (say, if it's a structure
representing something bigger than the largest available integer
type), then there is no language-defined conversion. If the type is
provided by some library, then that library will probably provide one
or more conversion routines. If you're defining it yourself, you'll
need to define your own conversion routines.

Again, the C language doesn't define a "quadword", or even a "word".
If a "quadword" is meant to be 64 bits, then type "long long" or
"unsigned long long" is probably the right thing; these are integer
types, and can be implicitly converted to or from any other integer
types. They're guaranteed to be *at least* 64 bits; in every
implementation I've heard of they're exactly 64 bits.

If a "quadword" is 4 32-bit words, for a total of 128 bits, there most
likely isn't an integer type that big.

This is why I (and several others) asked the OP to explain to us what
a "quadword" is, and why we can't really answer his question until he
tells us.

--
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"
Nov 29 '07 #7
Keith Thompson wrote:
James Kuyper <ja*********@verizon.netwrites:
....
However, if you already know the name for the quadword type in a given
implementation of C, it may be that all you're really asking is what
you actually said: "How can I convert ... to a quadword"? If so, the
answer is that the you do it precisely the same way as any other
conversion:

typedef implementation_specific_type quadword;
typedef desired_integer_type Integer;

Integer i = 42;
quadword q = (quadword)i;
unsigned char c = 'c';
q = (quadword)c;

Assuming that "quadword" is an integer type, the casts are
unnecessary. A value can be converted from any numeric type to any
other numeric type with a simple assignment; it will be converted
implicitly:

Integer i = 42;
quadword q = i;
unsighed char c = 'c';
q = c;
You're right. I was just trying to demonstrate how to explicitly make
the conversion happen by using a cast; I should have chosen an example
where the cast was actually necessary.
Nov 29 '07 #8
ja*********@verizon.net writes:
Keith Thompson wrote:
>James Kuyper <ja*********@verizon.netwrites:
...
However, if you already know the name for the quadword type in a given
implementation of C, it may be that all you're really asking is what
you actually said: "How can I convert ... to a quadword"? If so, the
answer is that the you do it precisely the same way as any other
conversion:

typedef implementation_specific_type quadword;
typedef desired_integer_type Integer;

Integer i = 42;
quadword q = (quadword)i;
unsigned char c = 'c';
q = (quadword)c;

Assuming that "quadword" is an integer type, the casts are
unnecessary. A value can be converted from any numeric type to any
other numeric type with a simple assignment; it will be converted
implicitly:

Integer i = 42;
quadword q = i;
unsighed char c = 'c';
q = c;

You're right. I was just trying to demonstrate how to explicitly make
the conversion happen by using a cast; I should have chosen an example
where the cast was actually necessary.
If both types are numeric, there are very few cases where the cast is
actually necessary. You might need a cast for an argument to a
variadic function (where the compiler can't determine the expected
type), or in some cases where you want fine-grained control within an
expression. (Even in those cases, the cast isn't absolutely
necessary; you can use a temporary object instead. IMHO in such cases
a cast is cleaner; YMMV.)

All casts should be viewed with suspicion.

--
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"
Nov 29 '07 #9
On Nov 28, 8:30 pm, arunmib <arun...@gmail.comwrote:
hi all,
How can I convert an Integer (int data type) and an unsigned char
data type to a quadword? I want to know the conversion mechanism....
/* Sounds like an OpenVMS programmer... */
#include <stdio.h>
int main(void)
{
long long signed_quadword;
unsigned long long unsigned_quadword;
static const int int_type = -23456;
static const unsigned char unsigned_char_type = 65;

/* Probably no surprises here */
signed_quadword = int_type;
printf("signed quadword became %lld from %d\n", signed_quadword,
int_type);
signed_quadword = unsigned_char_type;
printf("signed quadword became %lld from '%c'=%u\n",
signed_quadword, unsigned_char_type, (unsigned) unsigned_char_type);
unsigned_quadword = unsigned_char_type;
printf("unsigned quadword became %llu from '%c'=%u\n",
unsigned_quadword, unsigned_char_type, (unsigned) unsigned_char_type);

/* This one may provide surprises: */
unsigned_quadword = (unsigned long long) int_type;
printf("unsigned quadword became %llu from %d\n",
unsigned_quadword, int_type);

return 0;
}
Nov 29 '07 #10

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

Similar topics

1
by: Stub | last post by:
Docs says that "The compiler does not use an explicit constructor to implement an implied conversion of types. It's purpose is reserved explicitly for construction." I put up code of three cases...
7
by: Michael Lehn | last post by:
Hi, I have a question regarding the conversion of objects. When is the conversion done by the constructor and when by the operator. My feeling tells me that the constructor is preferred. But...
16
by: TTroy | last post by:
Hello, I'm relatively new to C and have gone through more than 4 books on it. None mentioned anything about integral promotion, arithmetic conversion, value preserving and unsigned preserving. ...
31
by: Bjørn Augestad | last post by:
Below is a program which converts a double to an integer in two different ways, giving me two different values for the int. The basic expression is 1.0 / (1.0 * 365.0) which should be 365, but one...
11
by: Steve Gough | last post by:
Could anyone please help me to understand what is happening here? The commented line produces an error, which is what I expected given that there is no conversion defined from type double to type...
2
by: Alex Sedow | last post by:
Why explicit conversion from SomeType* to IntPtr is not ambiguous (according to standart)? Example: // System.IntPtr class IntPtr { public static explicit System.IntPtr (int); public...
3
by: Steve Richter | last post by:
here is a warning I am getting in a C++ .NET compile: c:\SrNet\jury\JuryTest.cpp(55) : warning C4927: illegal conversion; more than one user-defined conversion has been implicitly applied while...
0
by: Lou Evart | last post by:
DOCUMENT CONVERSION SERVICES Softline International (SII) operates one of the industry's largest document and data conversion service bureaus. In the past year, SII converted over a million...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 3 Jan 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). For other local times, please check World Time Buddy In...
0
by: jianzs | last post by:
Introduction Cloud-native applications are conventionally identified as those designed and nurtured on cloud infrastructure. Such applications, rooted in cloud technologies, skillfully benefit from...
0
by: fareedcanada | last post by:
Hello I am trying to split number on their count. suppose i have 121314151617 (12cnt) then number should be split like 12,13,14,15,16,17 and if 11314151617 (11cnt) then should be split like...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
1
by: davi5007 | last post by:
Hi, Basically, I am trying to automate a field named TraceabilityNo into a web page from an access form. I've got the serial held in the variable strSearchString. How can I get this into the...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: Aftab Ahmad | last post by:
So, I have written a code for a cmd called "Send WhatsApp Message" to open and send WhatsApp messaage. The code is given below. Dim IE As Object Set IE =...

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.