Liste des Groupes | Revenir à cl c |
Em 8/8/2024 6:41 PM, Bart escreveu:It would be helpful if you made more of an effort to write clearly here. (We know you can do so when you want to.) It is very difficult to follow what you are referring to here - what is "this case" here? A conversion from a double to an int certainly does not re-interpret or copy bits - like other conversions, it copies the /value/ to the best possible extent given the limitations of the types.On 08/08/2024 21:34, Thiago Adams wrote:This part was always clear to me:On 08/08/2024 16:42, Keith Thompson wrote:>Thiago Adams <thiago.adams@gmail.com> writes:>On 07/08/2024 17:00, Dan Purgert wrote:[...]On 2024-08-07, Thiago Adams wrote:>>How about floating point?Floating point is a huge mess, and has a few variations for
encoding;
though I think most C implementations use the one from the IEEE on 1985
(uh, IEEE754, I think?)
I didn't specify properly , but my question was more about floating
point registers. I think in this case they have specialized registers.
Who is "they"?
>
Some CPUs have floating-point registers, some don't. C says nothing
about registers.
>
What exactly is your question? Is it not already answered by reading
the "Conversions" section of the C standard?
>
>
This part is related with the previous question about the origins of integer promotions.
>
We don't have "char" register or signed/unsigned register. But I believe we may have double and float registers. So float does not need to be converted to double.
>
There is no specif question here, just trying to understand the rationally behind the conversions rules.
The rules have little to do with concrete machines with registers.
>
Your initial post showed come confusion about how conversions work. They are not performed 'in-place', any more than writing `a + 1` changes the value of `a`.
>
Take:
>
int a; double x;
>
x = (double)a;
>
The cast is implicit here but I've written it out to make it clear. My C compiler produces intermediate code like this before converting it to native code:
>
push x r64 # r64 means float64
fix r64 -> i32
pop a i32
>
I could choose to interprete this code just as it is. Then, in this execution model, there are no registers at all, only a stack that can hold data of any type.
>
The 'fix' instruction pops the double value from the stack, converts it to int (which involves changing both the bit-pattern, and the bit-width), and pushes it back onto the stack.
>
Registers come into it when running it directly on a real machine. But you seem more concerned with safety and correctness than performance, so there's probably no real need to look at actual generated native code.
>
That'll just be confusing (especially if you follow the advice to generate only optimised code).
>
>
>
>
"They are not performed 'in-place', any more than writing `a + 1` changes the value of `a`."
Lets take double to int.
In this case the bits of double needs to be reinterpreted (copied to) int.
So the answer "how it works" can be
always/generally machine has a instruction to do this
or.. this is defined by the IIE ... standard as ...
Date | Sujet | # | Auteur | |
7 Aug 24 | how cast works? | 122 | Thiago Adams | |
7 Aug 24 | Re: how cast works? | 7 | Thiago Adams | |
7 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
12 Aug 24 | Re: how cast works? | 5 | Tim Rentsch | |
12 Aug 24 | Re: how cast works? | 4 | Vir Campestris | |
12 Aug 24 | Challenge/exercise problem - signum() function | 3 | Tim Rentsch | |
12 Aug 24 | Re: Challenge/exercise problem - signum() function | 2 | Lew Pitcher | |
12 Aug 24 | Re: Challenge/exercise problem - signum() function | 1 | Tim Rentsch | |
7 Aug 24 | Re: how cast works? | 107 | Dan Purgert | |
7 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
8 Aug 24 | Re: how cast works? | 1 | Lawrence D'Oliveiro | |
8 Aug 24 | Re: how cast works? | 101 | Thiago Adams | |
8 Aug 24 | Re: how cast works? | 25 | Bart | |
8 Aug 24 | Re: how cast works? | 24 | Michael S | |
8 Aug 24 | Re: how cast works? | 1 | Thiago Adams | |
8 Aug 24 | Re: how cast works? | 22 | Bart | |
8 Aug 24 | Re: how cast works? | 5 | Thiago Adams | |
8 Aug 24 | Re: how cast works? | 1 | Thiago Adams | |
8 Aug 24 | Re: how cast works? | 2 | Bart | |
8 Aug 24 | Re: how cast works? | 1 | Thiago Adams | |
8 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
8 Aug 24 | Re: how cast works? | 16 | David Brown | |
8 Aug 24 | Re: how cast works? | 15 | Bart | |
9 Aug 24 | Re: how cast works? | 13 | David Brown | |
9 Aug 24 | Re: how cast works? | 9 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 3 | Lawrence D'Oliveiro | |
9 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 1 | James Kuyper | |
9 Aug 24 | Re: how cast works? | 5 | David Brown | |
9 Aug 24 | Re: how cast works? | 4 | Keith Thompson | |
12 Aug 24 | Re: how cast works? | 3 | Tim Rentsch | |
12 Aug 24 | Re: how cast works? | 2 | Keith Thompson | |
3 Sep 24 | Re: how cast works? | 1 | Tim Rentsch | |
9 Aug 24 | Re: how cast works? | 3 | Bart | |
9 Aug 24 | Re: how cast works? | 2 | David Brown | |
10 Aug 24 | Re: how cast works? | 1 | Bart | |
9 Aug 24 | Re: how cast works? | 1 | Lawrence D'Oliveiro | |
8 Aug 24 | Re: how cast works? | 75 | Keith Thompson | |
8 Aug 24 | Re: how cast works? | 74 | Thiago Adams | |
8 Aug 24 | Re: how cast works? | 72 | Bart | |
9 Aug 24 | Re: how cast works? | 47 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 38 | Bart | |
9 Aug 24 | Re: how cast works? | 2 | David Brown | |
12 Aug 24 | Re: how cast works? | 1 | Bart | |
9 Aug 24 | Re: how cast works? | 29 | James Kuyper | |
9 Aug 24 | Re: how cast works? | 14 | Bart | |
9 Aug 24 | Re: how cast works? | 3 | Keith Thompson | |
10 Aug 24 | Re: how cast works? | 2 | Bart | |
10 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
10 Aug 24 | Re: how cast works? | 10 | James Kuyper | |
13 Aug 24 | Re: how cast works? | 1 | David Brown | |
13 Aug 24 | Re: how cast works? | 1 | Bart | |
13 Aug 24 | Re: how cast works? | 7 | James Kuyper | |
13 Aug 24 | Re: how cast works? | 6 | Bart | |
13 Aug 24 | Re: how cast works? | 5 | Keith Thompson | |
13 Aug 24 | Re: how cast works? | 4 | Bart | |
14 Aug 24 | Re: how cast works? | 3 | Tim Rentsch | |
14 Aug 24 | Re: how cast works? | 2 | Bart | |
18 Aug 24 | Re: how cast works? | 1 | Tim Rentsch | |
9 Aug 24 | Re: how cast works? | 2 | Keith Thompson | |
10 Aug 24 | Re: how cast works? | 1 | James Kuyper | |
9 Aug 24 | Re: how cast works? | 12 | Kaz Kylheku | |
9 Aug 24 | Re: how cast works? | 9 | Keith Thompson | |
10 Aug 24 | Re: how cast works? | 8 | Kaz Kylheku | |
10 Aug 24 | Re: how cast works? | 6 | Keith Thompson | |
10 Aug 24 | Re: how cast works? | 3 | Kaz Kylheku | |
10 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
10 Aug 24 | Re: how cast works? | 1 | James Kuyper | |
10 Aug 24 | Re: how cast works? | 2 | Bart | |
13 Aug 24 | Re: how cast works? | 1 | David Brown | |
12 Aug 24 | Re: how cast works? | 1 | Tim Rentsch | |
10 Aug 24 | Re: how cast works? | 1 | James Kuyper | |
12 Aug 24 | Re: how cast works? | 1 | Tim Rentsch | |
9 Aug 24 | Re: how cast works? | 4 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 3 | Bart | |
9 Aug 24 | Re: how cast works? | 2 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 1 | Bart | |
12 Aug 24 | Re: how cast works? | 2 | Tim Rentsch | |
12 Aug 24 | Re: how cast works? | 1 | Bart | |
12 Aug 24 | Re: how cast works? | 8 | Tim Rentsch | |
12 Aug 24 | Re: how cast works? | 7 | Bart | |
12 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
12 Aug 24 | Re: how cast works? | 5 | Tim Rentsch | |
12 Aug 24 | Re: how cast works? | 4 | Keith Thompson | |
12 Aug 24 | Re: how cast works? | 3 | Ben Bacarisse | |
12 Aug 24 | Re: how cast works? | 2 | Tim Rentsch | |
12 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 24 | Thiago Adams | |
9 Aug 24 | Re: how cast works? | 2 | Bart | |
9 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 19 | David Brown | |
9 Aug 24 | Re: how cast works? | 18 | Thiago Adams | |
9 Aug 24 | Re: how cast works? | 3 | Thiago Adams | |
9 Aug 24 | Re: how cast works? | 1 | David Brown | |
9 Aug 24 | Re: how cast works? | 1 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 11 | David Brown | |
10 Aug 24 | Re: how cast works? | 10 | Bart | |
10 Aug 24 | Re: how cast works? | 9 | Thiago Adams | |
10 Aug 24 | Re: how cast works? | 8 | Bart | |
11 Aug 24 | Re: how cast works? | 7 | Thiago Adams | |
11 Aug 24 | Re: how cast works? | 6 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 3 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 2 | Keith Thompson | |
9 Aug 24 | Re: how cast works? | 1 | David Brown | |
8 Aug 24 | Re: how cast works? | 3 | Stefan Ram | |
7 Aug 24 | Re: how cast works? | 6 | Keith Thompson | |
8 Aug 24 | Re: how cast works? | 1 | Lawrence D'Oliveiro |
Les messages affichés proviennent d'usenet.