The "correct" meaning of "K" (kilo) from its Greek origins was "1000".
But, even before the PC weenies took over, "K" was used ambiguously in
the computer industry and required one to understand the context
conventions: At least by the 1960's and S/360 IBM "officially"
(documented in manuals) used "K" to be "1024 "when talking about
binary-addressed memory and to be "1000" when talking about external
storage, which was not binary addressed. For non-binary-addressed
machines (like IBM 1620), "K" still meant "1000" for memory as well; and
on a few machines where octal rather than hex notation was typically
used for memory addresses I have even seen "K" used for 8^3=512 . PC
folks didn't understand those conventions and made things even more
confused by ambiguously using the "1024" definition in inappropriate
contexts that did not involve binary addressing.
In 1998 new international standards were officially adopted to end the
need for any ambiguity by establishing distinct "binary" prefixes to be
used where powers of 2 rather than powers of 10 were meant. Since then
the correct usage is "K" (kilo-) for 1000 and "Ki" (kibi-, short for
"kilo-binary") for 1024, with similar conventions for other multipliers
(http://physics.nist.gov/cuu/Units/binary.html). You will still find
many people who were educated prior to 1998, or taught by those who were
educated before 1998, who are either ignorant of the new standards or
fail to use them consistently and who use "K" ,"M", or "G" in contexts
where "Ki", "Mi", or "Gi" should be used.
Joel C. Ewing
On 05/02/2013 08:16 PM, Scott Ford wrote:
Ok guys ..I understand the science here but I learned a K = 1024 bytes not
1000 ...am I too old school .....
Scott ford
www.identityforge.com
from my IPAD
'Infinite wisdom through infinite means'
On May 2, 2013, at 4:08 PM, Charles Mills <[email protected]> wrote:
You do get it! <g> Your second sentence is a perfect exposition of what I was trying to
ask. Your last paragraph is a perfect exposition of the problem I am solving with the
"K" notation.
Thanks all, especially JG.
"Scaled" seems to be pretty good. Not sure what the opposite is? "NoScaled"?
"Unscaled"?
INTFMT(SCALED|NOSCALED)
Decimal does not really cut it because it's base ten in any event, and a
decimal point is absent in any event. Binary would be confusing, I think.
I hear the people complaining about "nudity" (ahem) but the units are already
specified. Giving an example, devoid here of all context
BytesIn = 25.7K, BytesOut = 286.4M
Yeah, I suppose it might say just plain In = 25.7KB, but, as we say, "the program doesn't work
that way." (Also, due to other constraints it MUST appear in a "string" format
message, not in tabular form like most mainframe reports.)
And yes, I am doing it "with my own code" -- there is no built-in support in
the language I am using (C++).
Charles
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Joel C. Ewing
Sent: Thursday, May 02, 2013 3:30 PM
To: [email protected]
Subject: Re: OT - What is the proper term for "K" notation?
I get it. The question is not about what scaling factor is being specified, or even the name of a
specific measurement units designation, but a more general-level question of what kind of name
would one give to the concept of a scaled number representation like "23.5K" or
"23.6M", if for example you were writing a computer output routine to print a number in
that format, rather than printing it as an integer format, or a fixed point value format, or
floating point value with exponent format.
Perhaps you could just call it a "scaled integer value" where "M" is an indication of scaling factor, but I can't
recall ever hearing someone attempt to give such an external notation a formal name. The usage of "M" in a context like
"MB" is as a prefix, and the standards of which I am aware only formally define its usage when combined with a unit of
measurement, not stand-alone. The latter format (45600000) I would simply call "integer" or possibly "unscaled
integer" if the other is
called "scaled". The term "scaled integer" does appear in the context
of some languages like COBOL, but it applies to the implied 10**n multiplier in
an internal data representation, not to scaling specific to input or output of
values.
One can certainly find examples of applications, particularly in the
interactive world, where output values are dynamically scaled so as to display
the most significant digits while still using a limited number of characters as
the values get increasingly large:
as in displaying "900 B" as "900 B", but "212,123 B" as "212.1 KB",
"616,212,123 B" as "616.2MB", etc.. It would make sense to be able to
generalize such a numeric format in the absence of a specific measurement unit, but I'm not sure
what I would call it other than
"dynamically scaled integer". There surely must a programming language
somewhere with direct support for such an output format. I'm just not
personally aware of any.
Joel C. Ewing
--
Joel C. Ewing, Bentonville, AR [email protected]
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN