Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #54762

Re: formats and endians

From Kaz Kylheku <kaz@kylheku.com>
Newsgroups comp.lang.c
Subject Re: formats and endians
Date 2014-12-16 22:21 +0000
Organization Aioe.org NNTP Server
Message-ID <20141216135753.268@kylheku.com> (permalink)
References (1 earlier) <m6pfea$5on$1@dont-email.me> <e86ce2b2-32e4-4aad-97d8-4410bb59fae6@googlegroups.com> <448ui7h7um.fsf@be-well.ilk.org> <de2d870a-d33b-4e72-a369-3884076b3021@googlegroups.com> <%AZjw.588142$u67.120723@fx08.am4>

Show all headers | View raw


On 2014-12-16, BartC <bc@freeuk.com> wrote:
> On 16/12/2014 16:47, fir wrote:
>> W dniu wtorek, 16 grudnia 2014 17:34:20 UTC+1 użytkownik Lowell Gilbert napisał:
>>> In hardware, both little-endian and big-endian have advantages to the
>>> designer, so they will co-exist for the foreseeable future. A number of
>>> CPUs can run in either mode.
>>>
>> what is the advantage of little endian? none comes to my mind....
>
> If you have the number 0x0000000000000012 stored in memory, then you can 
> load it as 8-bit, 16-bit, 32-bit or 64-bit using exactly the same address.

In fact, in a "bignum" library (multi-precision integer arithmetic) , if you
use little endian, then if you have two numbers of different length, A and B,
you know that A->digit[0] and B->digit[0] can be added together if the digit
array is little endian (least significant digit at the base address). Then you
carry over to digit[1] and so on. We do not have to calculate two different
offsets into two different sized numbers and work backwards.

Comparisons of bignums stored in little endian have to work from the top of the
array down. But this case only occurs when the numbers are of equal length.
If the numbers are of unequal length, we know that the shorter one has a lower
magnitude and don't even have to look at the arrays. When we do have to look
at the arrays, we can use the same index for both because they are the same
length.

The bignum libraries I know are little endian, such as M. Fromberger's MPI and
the GNU MP (GMP) library.

Do any bignum libraries use a big endian array order?

If there aren't any, or there are hardly any, then this seems to be a big point
in favor of little endian.

Little endian is better in situation where it actually matters.

I think even at the hardware level dealing with a small number of fixed-size
data types, little endian is superior. Here is why. Whether the CPU loads, say,
an 8 bit data type, 16 bit data type, 32 bit data type or 64 bit data type,
the address is the same, and the bits which are being loaded can be routed into
the internal bus in the same way.

Under big endian, for each data type, we need a different amount of bit skew to get
the bits into the internal bus, so it can be routed to a register or to the ALU.

Proof: there is some internal bus, and that bus has 8 lines for the least
significant significant bits.  Under big endian, the corresponding bits of the
in-memory operand are in a different place based on the size of the operand
being loaded.  When loading a 64 bit type, the least significant 8 bits are
offset by 7. When loading a 32 bit type, the least significant 8 bits are
offset by 3. When loading a 16 bit type, the least significant 8 bits are
offset by 1.

Some additional gates in the hardware have to deal with this ugly offsetting
mess, so that the correct bits of the operand go to the correct bus lines.

Under little endian, we can do a simple hack, such as: regardless of the oeprand
size, just load 64 bits at the address, and then just select those parts of
the operand that are needed. Selecting/masking is simpler than selective routing.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 04:49 -0800
  formats and endians John Bode <jfbode1029@gmail.com> - 2014-12-16 05:24 -0800
    Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 05:38 -0800
      Re: formats and endians Kleuske <kleuske@nowhere.net> - 2014-12-16 13:55 +0000
        Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 11:49 -0600
          Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-16 21:37 -0600
            Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-17 01:08 -0800
              Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-17 02:42 -0800
            Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-18 14:38 -0600
              Re: formats and endians Rosario193 <Rosario@invalid.invalid> - 2014-12-18 23:09 +0100
              Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-18 16:52 -0600
          Re: formats and endians Kleuske <kleuske@nowhere.net> - 2014-12-17 11:11 +0000
            Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-17 03:49 -0800
            Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-18 16:28 -0600
              Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-18 19:38 -0600
              Re: formats and endians Kleuske <kleuske@nowhere.net> - 2014-12-21 14:17 +0000
                Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-12-22 02:19 -0800
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2015-01-15 12:18 -0600
                Re: formats and endians Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-01-15 22:35 +0000
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-20 16:06 +0000
                Re: formats and endians Barry Schwarz <schwarzb@dqel.com> - 2015-01-22 15:41 -0800
                Re: formats and endians Robert Wessel <robertwessel2@yahoo.com> - 2015-01-23 00:45 -0600
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-23 08:52 +0000
                Re: formats and endians Robert Wessel <robertwessel2@yahoo.com> - 2015-01-23 05:47 -0600
                Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-01-23 03:51 -0800
                Re: formats and endians Bartc <bc@freeuk.com> - 2015-01-23 12:18 +0000
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-23 13:49 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2015-01-23 07:02 -0800
                Re: formats and endians fmassei@gmail.com - 2015-01-23 07:39 -0800
                Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2015-01-23 10:38 -0500
                Re: formats and endians Greg Martin <greg.at.softsprocket@dot.com> - 2015-01-23 17:45 +0000
                Re: formats and endians James Kuyper <jameskuyper@verizon.net> - 2015-01-23 12:59 -0500
                Re: formats and endians Greg Martin <greg.at.softsprocket@dot.com> - 2015-01-23 18:30 +0000
                Re: formats and endians James Kuyper <jameskuyper@verizon.net> - 2015-01-26 12:35 -0500
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-26 18:15 +0000
                Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-01-26 10:53 -0800
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-26 19:06 +0000
                Re: formats and endians Les Cargill <lcargill99@comcast.com> - 2015-01-26 17:54 -0600
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2015-01-26 19:09 -0600
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-27 01:49 +0000
                Re: formats and endians James Kuyper <jameskuyper@verizon.net> - 2015-01-26 21:37 -0500
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-23 22:33 +0000
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-23 18:02 +0000
                Re: formats and endians Greg Martin <greg.at.softsprocket@dot.com> - 2015-01-23 18:50 +0000
                Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-01-24 00:01 +0000
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-24 10:05 +0000
                Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-01-24 11:57 +0000
                Re: formats and endians Geoff <geoff@invalid.invalid> - 2015-01-24 07:48 -0800
                Re: formats and endians Bartc <bc@freeuk.com> - 2015-01-24 10:43 +0000
                Re: formats and endians Geoff <geoff@invalid.invalid> - 2015-01-24 07:52 -0800
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-23 13:51 +0000
      Re: formats and endians John Bode <jfbode1029@gmail.com> - 2014-12-16 06:56 -0800
    Re: formats and endians Robert Wessel <robertwessel2@yahoo.com> - 2014-12-16 13:20 -0600
      Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 18:00 -0600
        Re: formats and endians "Bill Cunningham" <nospam@nspam.invalid> - 2014-12-17 16:32 -0500
  Re: formats and endians David Brown <david.brown@hesbynett.no> - 2014-12-16 15:26 +0100
    Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 06:57 -0800
      Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 11:34 -0500
        Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 08:47 -0800
          Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 17:02 +0000
            Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 10:49 -0800
              Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 19:10 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 11:28 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 11:43 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 11:58 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 12:20 -0800
                Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 20:21 +0000
                Re: formats and endians Keith Thompson <kst-u@mib.org> - 2014-12-16 13:08 -0800
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2014-12-16 21:19 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 13:27 -0800
                Re: formats and endians Tim Rentsch <txr@alumni.caltech.edu> - 2014-12-16 16:41 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 13:22 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 14:00 -0800
                Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 22:26 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 14:54 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 15:09 -0800
                Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 20:08 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 12:48 -0800
            Re: formats and endians Kaz Kylheku <kaz@kylheku.com> - 2014-12-16 22:21 +0000
              Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 22:39 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 15:32 -0800
                Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-17 00:51 +0000
                Re: formats and endians BartC <bc@freeuk.com> - 2014-12-17 11:04 +0000
                Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-17 17:04 +0000
          Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 12:29 -0500
          Re: formats and endians Ken Brody <kenbrody@spamcop.net> - 2014-12-16 12:40 -0500
            Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 13:10 -0500
              Re: formats and endians Kaz Kylheku <kaz@kylheku.com> - 2014-12-16 18:35 +0000
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 12:57 -0600
                Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 15:11 -0500
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 18:10 -0600
            Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 10:51 -0800
            Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-16 19:43 +0000
        Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-12-16 10:37 -0800
          Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 13:05 -0600
            Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-12-16 11:49 -0800
              Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 17:16 -0600
          Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 14:55 -0500
            Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 17:48 -0600
              Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-17 00:18 -0600
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-20 12:21 -0600
                Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-22 01:38 -0600
      Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 11:45 -0600
    Re: formats and endians Michael Angelo Ravera <maravera@prodigy.net> - 2014-12-18 16:50 -0800
  Re: formats and endians Nobody <nobody@nowhere.invalid> - 2014-12-17 04:51 +0000
    Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-12-19 10:16 -0800

csiph-web