Array Indexing
James Dunne
james.jdunne at gmail.com
Tue May 2 07:25:52 PDT 2006
kris wrote:
> James Dunne wrote:
>
>> kris wrote:
>>
>>> James Dunne wrote:
>>>
>>>> Agreed. Byte isn't really an integer, it's more for storage.
>>>> Storage should not care about signedness, it should just be used for
>>>> read, write, comparison, and bit-flipping operations.
>>>
>>>
>>>
>>> Woah ... byte isn't really an integer? I guess long is not really an
>>> integer either, and should only be used for bit flipping too :)
>>>
>>
>> Of course not. I simply meant that bytes shouldn't be used for
>> calculations. None of our integral types are literal mathematical
>> types if that's what you're trying to point out. I meant the word
>> 'byte' implies storage. Would you prefer octet instead?
>>
>
> I'm not trying to piss on your shoes, James :)
>
Hehehe. Didn't mean to jump to defensive mode.
> But, what you noted is kinda' nonsense. Each of those common terms
> represent 'storage'; not just "byte". And what's this about byte "should
> just be used for read, write, comparison, and bit-flipping"? That's
> plain rubbish :)
>
> How about a "tiny int"?
>
> The point is, you /appear/ to be making a totally arbitrary distinction.
> Eight-bit values make perfectly good "integers" for a number of CPU
> designs and applications. It may not suit the type of apps you happen to
> be thinking of, but that's beside the point.
>
> Just because the natural comfort-spot for hardware architectures
> currently targeted by D happen to have 32-bit registers, that doesn't
> make "int" the only road to travel. Does it? What about 64-bit
> architectures, where the comfort-spot can be a 64-bit "long" instead?
> (depending on how you compile your app). At that point, does "int" get
> relegated to the place where "byte" used to be? For 'read', 'write',
> 'comparison', and 'bit flipping' only?
>
> This is daft. And I wouldn't bother to say anything other than someone
> might take you literally :)
>
> *shrug*
Ah, I understand the confusion now. Yes I didn't make myself quite
clear. However, that is a lot of words to put in my mouth when I could
be (and am) talking about something completely different...
My problem was with the name of the type and the confusion it causes.
Don't get me wrong, I'm all about 8-bit signed/unsigned integers and of
course they have their place in computation and embedded environments,
but calling them 'byte' and 'ubyte' disturbs me. Summary: I'd rather
they be 'int8' and 'uint8' or some derivative thereof. Perhaps even
'tiny' as you half-suggested would suit better.
We don't generally talk about something taking up 3 kilo-unsigned-bytes,
do we? No, it's simply an octet, not implying any signedness of the
actual integer value stored within. A byte array to me should just mean
an array of octets that can look like tiny integers when you want them
to. Also, they may be grouped up and treated as
little-endian/big-endian larger integer types.
What I meant by the 'read' 'write' 'comparison' and 'bit-flipping' were
the list of allowable operations on the concept of storage bytes, not
necessarily the equivalently-sized integer type, 'tiny' or whatever you
wish to call it. That's the distinction I'm trying to make, plain and
simple.
--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/MU/S d-pu s:+ a-->? C++++$ UL+++ P--- L+++ !E W-- N++ o? K? w--- O
M--@ V? PS PE Y+ PGP- t+ 5 X+ !R tv-->!tv b- DI++(+) D++ G e++>e
h>--->++ r+++ y+++
------END GEEK CODE BLOCK------
James Dunne
More information about the Digitalmars-d
mailing list