Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| 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> |
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
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