Proposal for Signed Digit representation

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 5 2018, 06:23 PM #1

I've been playing around with the following convention for signed bases less than or equal to 12.  The idea is just to recycle the digits you don't use for positive digits to represent the negative digits.  

For example, Don Knuth's favorite base, signed ternary.  Vanilla ternary uses the digits 0,1, and 2.   Signed ternary doesn't need the 2, so recycle it as -1.  Seems wierd, but counting somehow becomes more natural:

Code: Select all

decimal        :  0  1  2  3  4  5  
signed ternary :  0  1  12 10 11 22
Addition and subtraction then use the same rules, but instead of carrying when you roll over from 2 to 0, you carry when you roll over from 1 to -1:

Code: Select all

Vanilla Ternary             Signed Ternary         |       Vanilla Ternary    Signed Ternary
---------------             ---------------        |       ---------------    ---------------
                                                   |           1                     1
  11                            11                 |          +1                    +1
  +2                            +2                 |         ----                  ----
  --                           ----                |           2  no carry          12 carry 1
   0 carry 1                     0  no carry       |                              
  2                             1                  |
 ---                           ----                |
  20                            10                 |
The general rule is for a base b, use the first floor(b/2) digits as per normal, and use each remaining digit d to represent d-b.  I.e. the b's complement of that digit.

I've only found one drawback to this technique, but it is a biggie:  we already have a hard-wired meaning for the symbol "2", and it does take some time to get used to it.  However, this is a general problem when going to a different base.  After all, these strings:

Code: Select all

10
1/2
3.1415926
*also* have hard-wired meanings for us.  Pretty much any number which is more than 1 digit long we have to get used to a new meaning for; is it really that bad to also reprogram yourself for a few more digits?  I've found its not that bad, and delivers a few advantages:
1.  You don't have to come up with new symbols for the negative digits.
2.  Addition/subtraction tables are the same, except instead of carrying when rolling over from b-1 to 0, you carry when you roll over from floor(b/2) to floor(b/2)+1.
2.  It reveals the connection between signed arithmetic and complement arithmetic.

Another thing I should point out is that for even bases, this doesn't yield a balanced arithmetic.  Whether you consider this a drawback or not, YMMV, but I actually like it, because it *does* yield a signed arithmetic for that base which does not have ambiguous digit representation.  I'll illustrate with senary:

Vanilla senary uses the digits 0,1,2,3,4,5 as per normal.  Signed senary uses the digits 0,1,2,3 as per normal, but 4 <-> -2 and 5 <-> -1.  There is no symbol for -3.  

This means that even though every positive and negative integer can be uniquely represented, its not absolutely trivial to negate a number in all cases, just by swapping out each digit for its corresponding opposite-signed digit.  For example, senary 124 can be negated just by swapping digits to 542.  But the negation of 3 is 53. With practice though negating isn't hard at all.  Just whenever you see a 3, you need to add "53" to the number you are constructing.  e.g.:

Code: Select all

5 * 1203 = 5000  (5 is the opposite digit to 1)
          + 400  (4 is the opposite digit to 2)
          +   0    
          +  53  (53 is negative three)
         -----
           5453

If that becomes clumsy, well, you nothing is preventing you from just using the same convention as is used for vanilla arithmatic, viz, just prepend a "-" to the number to indicate that you've negated it :-)  
Quote
Like
Share

pcyrus
Newcomer
pcyrus
Newcomer
Joined: Jun 19 2013, 04:02 PM

Sep 14 2018, 10:08 AM #2

For balanced dozenal, I use a digit for negative 6 and even a digit for negative zero!  Then it IS trivial to negate numbers.

But I'm using Shwa digits (www.shwa.org/reverse.htm)
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 14 2018, 01:03 PM #3

SenaryThe12th wrote: I've only found one drawback to this technique, but it is a biggie:  we already have a hard-wired meaning for the symbol "2", and it does take some time to get used to it.  However, this is a general problem when going to a different base.  After all, these strings:

Code: Select all

10
1/2
3.1415926
*also* have hard-wired meanings for us.
"1/2" has the same meaning in every base.  There is nothing problematical about any rational number whose numerator and denominator are single digits (so long as the base includes those digits, but even then, they might be accepted as "alien" digits).

"10" (and indeed any multi-digit numeral) does indeed have a "hardwired" meaning for most people, but only because people have been "hardwired" for decimal. But once one admits the possibility of more than one base, all unqualified multi-digit numerals become ambiguous, and therefore ought to be suspect.  That is what base annotation is for.  "10d" vs "10z" vs "102" vs. "103" etc. resolve that ambiguity.

~3.14159265d = ~3.18480949z ought to be immediately recognizable as pi, whereas
~3.14159265z = ~3.18480949d ought to be recognizable as "false friends".
Vanilla senary uses the digits 0,1,2,3,4,5 as per normal.  Signed senary uses the digits 0,1,2,3 as per normal, but 4 <-> -2 and 5 <-> -1.  There is no symbol for -3.
Complement arithmetic aside, I think it's much easier to understand signed base arithmetic if one gives up on the preoccupation with trying to express the digit values as single characters. What if we just spread out, and give ourselves a little room?  Let's define the digits of signed senary, for example, as:

(-2)±6, (-1)±6, (+0)±6, (+1)±6, (+2)±6, (+3)±6

(where the annotation ±6 indicates "signed senary base").  This is essentially what you described:
If that becomes clumsy, well, you nothing is preventing you from just using the same convention as is used for vanilla arithmatic, viz, just prepend a "-" to the number to indicate that you've negated it :-)
except that this treats both the positive and negative digits equitably. Both require two characters to represent a "digit": a sign, as well as an ordinary digit.

Counting would be as follows:

Code: Select all

[±6] All multi-digit numbers signed senary
0 = (+0)     -0 = (+0)
1 = (+1)     -1 = (-1)
2 = (+2)     -2 = (-2)
3 = (+3)     -3 = (-1'+3) 
4 = (+1'-2)  -4 = (-1'+2)
5 = (+1'-1)  -5 = (-1'+1)
6 = (+1'+0)  -6 = (-1'+0)
7 = (+1'+1)  -7 = (-1'-1)
8 = (+1'+2)  -8 = (-1'-2)
9 = (+1'+3)  -9 = (-2'+3)
A = (+2'-2)  -A = (-2'+2)
B = (+2'-1)  -B = (-2'+1)
C = (+2'0)   -C = (-2'+0)
D = (+2'+1)  -D = (-2'-1)
E = (+2'+2)  -E = (-2'-2)
F = (+2'+3)  -F = (-1'+3'+3)
G = (+3'-2)  -G = (-1'+3'+2)
H = (+3'-1)  -H = (-1'+3'+1)
I = (+3'+0)  -I = (-1'+3'+0)
... etc
So here, like in other bases that require more than one character per "digit", I am suggesting the apostrophe as the "digit separator".

Then instead of something like this: 

Code: Select all

5 * 1203 = 5000  (5 is the opposite digit to 1)
          + 400  (4 is the opposite digit to 2)
          +   0    
          +  53  (53 is negative three)
         -----
           5453
We could have something like this:

Code: Select all

[±6] All multi-digit numbers signed senary:

(-1) * (+1'+2'+0'+3) = (-1'+0'+0'+0)
                     +    (-2'+0'+0)
                     +       (+0'+0)
                     +       (-1'+3) [= -6 + 3 = -3]
                     ---------------
                       (-1'-2'-1'+3)
No new symbols, old symbols mean what they've always meant, negative and positive digits are clear.
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

Paul Rapoport
Dozens Disciple
Paul Rapoport
Dozens Disciple
Joined: Dec 26 2012, 01:59 AM

Sep 14 2018, 01:28 PM #4

In that last example, is the first item -1, or 10-1? Or (+1'-1).
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 14 2018, 01:47 PM #5

Paul Rapoport wrote: In that last example, is the first item -1, or 10-1? Or (+1'-1).
The first item, I believe, is simply

(-1)±6 = -1

whereas

(+1'-1)±6 = 106 - 1 = 5

Again, in my rendering, all these symbols continue to mean what they have always meant.  It was Senary who was suggesting that "5" be taken to mean "-1". Senary acknowledged that this repurposing of symbols requires retraining our brains away from our "hardwired" understanding of their meanings. I am trying to avoid that, and instead am trying to preserve their meanings, and convey more complex ideas (such as "signed digits") using correspondingly more complex structures.
Last edited by Kodegadulo on Sep 14 2018, 01:50 PM, edited 1 time in total.
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 14 2018, 01:50 PM #6

"1/2" has the same meaning in every base. 
Good catch!  Thanks for the correction.

I agree that just prepending a sign to the digits is probably the best way to understand and learn about signed bases.  But for actually using a signed base in our mundane daily calculations, it gets clumsy.

First, of course, is that it doubles the number of symbols it takes to represent a number.  Now, I'm a confirmed senary wingnut, and as such, I have a high tolerance for longer digit representations.  But even I have my limits.  

Second, is that when you are doing mental math, you really don't want the digits to take up more than 1 mental slot in your working memory.  Its hard enough to remember a number like 7XE as part of a partial sum during a long multiplication.  If you had to remember something like  +7-X+E, that already takes up 6 slots of your working memory, and we only have 7 (plus or minus 2) or so to work with.  
Last edited by SenaryThe12th on Sep 14 2018, 02:08 PM, edited 1 time in total.
Quote
Like
Share

Paul Rapoport
Dozens Disciple
Paul Rapoport
Dozens Disciple
Joined: Dec 26 2012, 01:59 AM

Sep 14 2018, 01:54 PM #7

The traditional balanced-base concept places elongated minus signs, otherwise known as dashes, over negative digits, so that there's no confusion with the minus operator. Positive digits need no representation in that rendering.
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 14 2018, 02:05 PM #8

SenaryThe12th wrote:I agree that just prepending a sign to the digits is probably the best way to understand and learn about signed bases.  But for actually using a signed base in our mundane daily calculations, it gets clumsy.
I would argue that constantly having to remind oneself that "5" really means -1 and "4" really means -2 is far more clumsy and error-prone.  Especially if, for the sake of discussion, you then have to relate your results in the signed base to values in an unsigned base, where "5" just means 5.  Witness Paul's confusion here, for example.
First, of course, is that it doubles the number of symbols it takes to represent a number.
So what? The answer to that is to train ourselves to read "+1", "-1", etc. as single items, with plain meanings.  We're quite used to doing that sort of thing.  Do you read the word "the" as three "slots" of information?  Or just a single, wholistic word?
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 14 2018, 02:11 PM #9

Paul Rapoport wrote: The traditional balanced-base concept places elongated minus signs, otherwise known as dashes, over negative digits, so that there's no confusion with the minus operator. Positive digits need no representation in that rendering.
True, and I'd go with that if it were easy to get macrons to overlap digit characters here, without resorting to \(\LaTeX\). Think of my suggestion here as an ASCII fallback.

Now, the question for Senary is, do \(\overline{1}\) and \(\overline{2}\) constitute single data items, or pairs of data items, for our "mental slots"? 🙂

Although for me I think it would be worth it to do something like this for the digits of signed senary:

\(\overset{-}{2}\), \(\overset{-}{1}\), \(\overset{+}{0}\), \(\overset{+}{1}\), \(\overset{+}{2}\), \(\overset{+}{3}\)

just for the sake of emphasizing that we're dealing with a signed representation.  Again, for someone sufficiently trained, couldn't those all be considered single "slots" of information?
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 14 2018, 02:29 PM #10

I would argue that constantly having to remind oneself that "5" really means -1 and "4" really means -2 is far more clumsy and error-prone.  

I'm not gunna lie; it does take some getting used to.  But what really ameliorates the situation is that the symbols keep *most* of their meanings when you need them the most--that is, during the computations.  The only part of the meaning which changes are the carry rules.  So, for example, in dozenal, 5+5 is X.    In the signed version, its 1X, because you carry when you roll over from 6 to 7, and not from E to 0.   

Also, if all of the digits in a number are less than 7, they all have their familier meanings.  e.g. 12345; is the same in signed and unsigned dozenal. 

I'm actually using this method now for mental arithmatic--I've converted over to signed senary for most daily calculations.  It took about 6 weeks of practice, but it actually does work.
 Do you read the word "the" as three "slots" of information?  Or just a single, wholistic word?
Quite so; we could do that.  But the whole point of +2 or -1 was that we could use the *old* meanings for everything.  Reading "+2" as a single unitary entity is tantamount to introducing a new symbol.  Its still assigning a new meaning old symbols.  And you have to learn new multiplication and addition tables for those new symbols.   You might say, well no, when we do the operations, we just decompose the new symbols into the old symbols.  But now, you are using *three* slots of working memory for each digit--you have "+2" in your head, then when you decompose it to "+" and "2" you take up two more slots.  

Consider a parallel claim: senary isn't that bad--you just have to train yourself to read digit *pairs* as a symbol.  Well yeah, but then you are really using base 36.
Quote
Like
Share

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 14 2018, 03:30 PM #11

Now, the question for Senary is, do \(\overline{1}\) and \(\overline{2}\) constitute single data items, or pairs of data items, for our "mental slots"? 
Well, the way my mind works, one slot can hold at most one symbol.   For example, when I chunk the letters "s", "i", "g', "h" into the word "sigh", I certainly can hold "sigh" in one slot.  But when I'm doing that, I'm not thinking about the letter "g" anymore.  

So if I were to train myself into seeing "-1" (or an overlined one) as one symbol, I could do that.  But when I slotted that, I would no longer be thinking about the "-" or the "1".   "-1" would become a new symbol, with a meaning distinct from the meanings of "-" and "1".

But the whole point of explicitly representing the sign is that you can keep your old meanings, and that you wouldn't assign new meanings to old symbols.   Training yourself to see "-1" as one symbol seems to me to be the very thing that you wanted to avoid doing, which was giving new meanings to old symbols.

In a new base, we are giving new meanings to every two digit number anyways.  We are already committed to leaving the vast majority of the old meanings behind.  Is it really that bad to also leave behind the meanings of a few extra single-digit numbers?
Quote
Like
Share

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 14 2018, 04:26 PM #12

The traditional balanced-base concept places elongated minus signs, otherwise known as dashes, over negative digits, so that there's no confusion with the minus operator. Positive digits need no representation in that rendering.
I think the traditional method has many advantages for, say didactic purposes, say a webpage or a textbook which is introducing the concept of signed bases.  It even works ok with pencel-and-paper calculations.

But other uses are problematic.  For computer input, its harder to type a number with an overbar.  If you do what Kodo describes as the "ascii fallback" and put a + or a - in front of the numbers, then as you point out there's potential for confusing with the plus and minus sign operators.

Mental arithmetic, for me anyways, is even worse.  I don't know why, but mentally visualizing a two or three digit number with overbars is just realy hard for me.  And if I try to say the number, with the "little voice in my head" how do I pronounce them?  I've I pronounce them as "minus 1", then I've got the same potential for confusion with the plus and minus operators as with the ascii fallback.  If I assign new words to them.....well....I might as well just have introduced new symbols for them.  

Contrast to the proposed method.  Say we are using signed dozenal, is it *really* that bad to read "7" as "-1?"  Heck, it even almost looks like a 1 with and overbar on it.  Instead of using X and E for -4 and -5, perhaps use "W" for -4, because it has 4 lines, and "G" for -5, as it also has that little horizontal bar in it  Then its just remembering two facts:  8 is -2 (8 has two loops) , and 9 is -3 (9 has one less than 2 loops).  

Like I said, I'm not going to lie, its not a trivial thing to get used it.  For me, going from senary to signed senary took about 6 weeks of practice.  I fully acknowledge that this is a drawback of the proposed system.  But it does work.
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 14 2018, 05:26 PM #13

SenaryThe12th wrote:For computer input, its harder to type a number with an overbar. 
True. No argument there.
If you do what Kodo describes as the "ascii fallback" and put a + or a - in front of the numbers, then as you point out there's potential for confusing with the plus and minus sign operators.
But this is nothing new.  It's all about context, and the same techniques for establishing context that we are already using in mathematics apply equally well here.  Things like parentheses, for instance, make it clear that +1 and -1 mean "positive one" and "negative one" when for instance they're embedded in parentheses thus: (+1) and (-1); as opposed to meaning "add one" and "subtract one" when embedded thus: (x+1) and (x-1).  That's why for instance I wrote (-1'-2'-1'+3) for \(\overset{-}{1}\overset{-}{2}\overset{-}{1}\overset{+}3\). Syntactic sugar like this is often enlisted to help clarify arithmetic expressions, and usually isn't counted as extra cognitive load.

But really, the difference between "negative one" and "subtract one" is a rather slight shading of meaning. It's not like we're conflating completely separate ideas here.
Mental arithmetic, for me anyways, is even worse.  I don't know why, but mentally visualizing a two or three digit number with overbars is just realy hard for me.
Well, I can't help that. But maybe you're just approaching it wrong...
And if I try to say the number, with the "little voice in my head" how do I pronounce them?  I've I pronounce them as "minus 1", then I've got the same potential for confusion with the plus and minus operators as with the ascii fallback.
You could pronounce them as "negative one", vs. "positive one", etc. Perhaps shorten that to "neg one" vs "pos one" if you like. But even if you pronounce them "minus one" vs. "plus one", and wind up conflating them in your head with "subtract one" vs. "add one", how is that a problem? That is in fact what those symbols mean: You're either adding or subtracting the value of that digit in that positional column in a positional-place-value numeral.  Where's the issue?

So for instance, \(\overset{-}1\overset{-}2\overset{-}1\overset{+}3_{\pm{6}}\) = (-1'-2'-1'+3)±6 might be pronounced "minus one sencue minus two sendred minus one sen plus three". Sounds perfectly reasonable.
  If I assign new words to them.....well....I might as well just have introduced new symbols for them.
What new words? There's nothing new about "negative one" vs. "positive one". 
Introducing new symbols is one thing.  But taking existing symbols, like 4 and 5, with established meanings, and trying to assign them different meanings, like -2 and -1 ...  to me, that's just crazy-making.
Contrast to the proposed method.  Say we are using signed dozenal, is it *really* that bad to read "7" as "-1?"  Heck, it even almost looks like a 1 with and overbar on it.
Aren't you actually trying to read "7" as "-5" in signed dozenal? You would be reading "7" as "-1" in signed octal. It perhaps make a nice coincidence in signed octal, but as a solution that's hardly scalable to other bases. In signed decimal, you'd be trying to read "7" as "-3".  If we want to work with all these signed bases, and others, how do we wrangle all these different meanings for "7"?  But -1, -3, and -5 are -1, -3, and -5 in any signed base.  Representing those a little more compactly as \(\overset{-}1\), \(\overset{-}3\), and \(\overset{-}5\), is not that big a leap.
Instead of using X and E for -4 and -5, perhaps use "W" for -4, because it has 4 lines, and "G" for -5, as it also has that little horizontal bar in it  Then its just remembering two facts:  8 is -2 (8 has two loops) , and 9 is -3 (9 has one less than 2 loops).
 
I'd rather have solutions that work for broader cases rather than solutions that are limited to specific one-ofs.
I fully acknowledge that this is a drawback of the proposed system.  But it does work.
With enough determination, anything, however awkward, can be made to "work". But it saves a lot of energy to build on what already works.
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 14 2018, 07:10 PM #14

Aren't you actually trying to read "7" as "-5" in signed dozenal?

Derp.  Yeah.  Must be getting close to lunchtime.

But this is nothing new.  It's all about context,

Its quite true that we are adept at using the same symbols in
different contexts with different meanings.  And we should take
advantage of this ability whenever it makes our lives easier.

But I'm not sure whether thats a point which gives an advantage
to either proposal :-)  Sure, we could say that, in the context of
using a signed base, (-1) means a digit with the value of -1.
But couldn't we, by the same argument, just say that, in the
context of using signed dozenal, we could use "E" as -1?

But really, the difference between "negative one" and "subtract one" is a rather slight shading of meaning.
For single digits, sure.  But for multi-digit numbers mixed with arithmetic operators,
its a bit different.  E.g.  5(-1)(2) isn't the same thing as 5 * -1 * 2.   The symbols are
the same, you are just using them differently, and (on a Wittgensteinian view of things)
you've changed their meanings.

Again, this doesn't really seem to be point in favor or against either proposal.  For
both proposals, we are changing the meanings of old symbols.
Perhaps shorten that to "neg one" vs "pos one" if you like.....Where's the issue?

It falls between the same two stools....if I train myself to treat "neg one" as an atomic name,
then when I say "neg one" I'm not thinking about "neg" or "one".  Which is fine, but by the
same token, why wouldn't it be just as good to train myself to think of "E" as -1, and not
think about its meaning as eleven in another context?

E.g. it seems to me that both proposals reuse old symbols for new meanings.  


What new words? There's nothing new about "negative one" vs. "positive one".
True, but if they are to take up only one slot in working memory, you have to
treat them as a single new symbol.

But taking existing symbols, like 4 and 5, with established meanings, and trying to assign them different meanings, like -2 and -1 ...  to me, that's just crazy-making.
*chuckle* I know this is one of your primordial bugaboos :-)  Honestly, just switching to entirely new digit names altogether is, IMHO, perhaps even a better proposal than mine.

However, here's my concern--I don't think your proposal actually avoids taking old symbols, with established meanings, and assigning them new meanings.  I mean, heck, *every* digit changes its meaning when we change bases.  When going to dozenal, for example, "2" changes meaning from "two times ten to the place" to "two times a dozen to the place".

We are inevitably going to give new meanings to old symbols.  That's just part of the package. My critique of notations like (-1) isn't that they wouldn't work, but that they don't actually even solve the problem you want them to solve.  

I'd rather have solutions that work for broader cases rather than solutions that are limited to specific one-ofs.
 
Actually, one of the reasons I thought you might like my proposal is that it *is* a broader solution.  It works for any set of digits for any base.  You can turn any base into a signed
base just by changing the carry rule.


With enough determination, anything, however awkward, can be made to "work". 

True, but its kind of like saying you can solve any problem in nomenclature just by adding a new prefix :-) You are a computer programmer right?  I'm sure you've heard of David Wheeler's aphorism "All problems in computer science can be solved by another level of indirection".  To which the answer is "except the problem of too many layers of indirection.

You can always just add another parameter to the function, or use a pointer to a pointer instead of a pointer, or whatnot. The game I'm trying to play is a different game:  I'm trying to see if we can get signed arithmetic *without* adding more symbols.  We take the same symbols we've got, and squeeze a bit more out of them.
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 14 2018, 09:01 PM #15

SenaryThe12th wrote: Its quite true that we are adept at using the same symbols in
different contexts with different meanings.
Where are you getting the idea that I've been talking about giving the same symbols different meanings in different contexts?  I've been talking about giving the same symbols the same meanings in different contexts.  -1 is -1 is -1.
But I'm not sure whether thats a point which gives an advantage
to either proposal :-)  Sure, we could say that, in the context of
using a signed base, (-1) means a digit with the value of -1.
But couldn't we, by the same argument, just say that, in the
context of using signed dozenal, we could use "E" as -1?
Why use "E" to represent -1, when you can just use "-1" to represent -1, and leave "E" to represent E (i.e., eleven)?  The nice thing about not playing around with the meanings of digit symbols, is that you can do something like this:

\(\mathrm{50_z + 60_z = E0_z = 1\overset{-}{1}0_z}\)

In other words, we can think, as an intermediate step, what the digits would add up to in ordinary dozenal base, and then convert that to signed dozenal, just by thinking, e.g. \(\mathrm{E = 10_z - 1 = 1\overset{-}1_z}\).  No need for any new "carry rule".

Note also that I've dispensed with any distinction in the annotation between ordinary dozenal and signed dozenal. No separate "±z" annotation, just a "z" annotation.  They're all just dozenal.  What makes a dozenal numeral signed is that some of the digits might happen to be marked as negative values.

Playing this game of pretending that "E" sometimes means -1, but sometimes just means E, would mean either every usage becomes ambiguous, or we'd  have to introduce a distinction of annotation.
For single digits, sure.  But for multi-digit numbers mixed with arithmetic operators,
its a bit different.  E.g.  5(-1)(2) isn't the same thing as 5 * -1 * 2. The symbols are
the same, you are just using them differently, and (on a Wittgensteinian view of things)
you've changed their meanings.
Huh? To me, both of those expressions are equivalent. They look like synonyms for

5 × -1 × 2 = -X = -10d

On the other hand, if you meant \(\mathrm{5\overset{-}12_z = 4E2_z = 710_d \neq 5 \times -1 \times 2}\), then yes that's correct. 

But note that \(\overset{-}1 = -1\).  In other words, the only difference between placing the minus over the one and placing it to the right is a stylistic difference. They have exactly the same meaning.  Just as there is no difference in meaning between the two 5's or the two 2's.
It falls between the same two stools....if I train myself to treat "neg one" as an atomic name,
then when I say "neg one" I'm not thinking about "neg" or "one".  Which is fine, but by the
same token, why wouldn't it be just as good to train myself to think of "E" as -1, and not
think about its meaning as eleven in another context?

E.g. it seems to me that both proposals reuse old symbols for new meanings. 
I disagree. See above. 
However, here's my concern--I don't think your proposal actually avoids taking old symbols, with established meanings, and assigning them new meanings.  I mean, heck, *every* digit changes its meaning when we change bases.  When going to dozenal, for example, "2" changes meaning from "two times ten to the place" to "two times a dozen to the place".
Notice the word "two" in both of your expressions. 20d and 20z do not give the digit 2 a new meaning. It's still a two in both cases.  What they do do is give a different meaning to the column that that 2 is occupying.  In one case it's a tens column, in the other it's a dozens column. But there is no symbol at all representing the value of the column, it's just implicitly the first power of the given base.  The annotations, however, make the bases explicit.
We are inevitably going to give new meanings to old symbols.  That's just part of the package.
Nope.  You can argue that this is a matter of semantics, but I really disagree with the semantics you're insisting on.

True, but its kind of like saying you can solve any problem in nomenclature just by adding a new prefix :-) You are a computer programmer right?  I'm sure you've heard of David Wheeler's aphorism "All problems in computer science can be solved by another level of indirection".  To which the answer is "except the problem of too many layers of indirection.
Cute. Is it really necessary to make this personal? But I'd point out that I'm not the one insisting on indirection here. If I mean "eleven" I'm going to say E. If I mean "negative one" I'm going to say -1 (or equivalently, \(\overset{-}1\)). You're the one proposing to say "E" when you actually mean "-1". How much more indirect can one get?
You can always just add another parameter to the function, or use a pointer to a pointer instead of a pointer, or whatnot. The game I'm trying to play is a different game:  I'm trying to see if we can get signed arithmetic *without* adding more symbols.  We take the same symbols we've got, and squeeze a bit more out of them.
Funny, but that's exactly how I'd characterize what I'm proposing: We don't add any new symbols, we don't coopt the settled meaning of existing symbols, we just use the symbols we already have with the same meanings they always had.  If we want a positional-place-value column to contain the negative of a digit, rather than the original digit, we negate the digit with a minus sign.  Make a stylistic accommodation to squeeze the minus sign in there, but otherwise it's just the same way we've always negated integers.

EDIT: Note that we could say (in any base \(b\)):

\(-1234 = \overset{-}1\overset{-}2\overset{-}3\overset{-}4\)

This is equivalent to saying:

\(-(1{\times}b^3 + 2{\times}b^2 + 3{\times}b^1 + 4{\times}b^0) = (-1){\times}b^3 + (-2){\times}b^2 + (-3){\times}b^1 + (-4){\times}b^0\)

In other words, the customary way of negating a multi-digit numeral, by placing a minus sign to the left of the whole numeral, is equivalent to negating each of its digits, but otherwise leaving the values of the positional columns the same, namely, the same powers of the base. Imagine a world where the norm was to do what you see on the right. Then the expression on the left could be seen as a proposed new shorthand for the expression on the right. Fewer symbols, fewer operations, but otherwise mathematically equivalent.
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 14 2018, 10:25 PM #16

Where are you getting the idea that I've been talking about giving the same symbols different meanings in different contexts?  I've been talking about giving the same symbols the same meanings in different contexts.  -1 is -1 is -1.
I think here you put your finger on the central point of disagreement.   I think you are using (-1) with different meanings in different contexts.  

You are proposing that in vanilla dozenal contexts, (-1)5 means -1; * 5;.  But in signed dozenal contexts, it means -1; * 10; ^ 1; + 5; .

Those are two very different meanings for the same string "(-1)".

But that really ok!    The very wonder of learning about new bases is that you learn that, say, "2" doesn't *have*s mean "two times ten raised to the power of whatever place it finds itself in".   When we generalize to operating in multiple bases, we endow our old digits with new, more flexible and wonderful meanings.

Why use "E" to represent -1, when you can just use "-1" to represent -1, and leave "E" to represent E (i.e., eleven)?
Because *anytime* you are changing bases, you arn't "just" using -1 to represent -1.  You are using (-1) to mean "minus one times the new base (not the old base)  raised to the power of whatever place (-1) finds itself in".   

What's more, you are changing the meaning of "place".  "Place" used to just mean the cardinal number of the symbol, counting from the right of the number.  In your proposal, Its actually kind of tricky even to precisely state how to parse out the string to find a symbol's place value. 
Playing this game of pretending that "E" sometimes means -1, but sometimes just means E, would mean either every usage becomes ambiguous, or we'd  have to introduce a distinction of annotation
But you are playing the same game with (-1) as I am with E.  My usage of E isn't any more or less ambiguous than yours; in both cases we have to know whether we're in the context of doing vanilla arithmetic or signed arithmetic.

Cute. Is it really necessary to make this personal? 
Bro, I appologize if that came across the wrong way. It was not written in that spirit at all.

Funny, but that's exactly how I'd characterize what I'm proposing: We don't add any new symbols,
Aren't overlined numbers new symbols?  
If I mean "eleven" I'm going to say E. 
Well, when you say "EE" you don't mean two elevens.  

But even beyond that, I'd argue that you've changed the meaning of "E" even more radically than I have.  In my system, the only change to the rules of addition and subtraction is that we carry when we roll over from 6 to 7, and not when rolling over from E to 0.   In your system, E doesn't even have a meaning anymore :-)   You drop half the digits, and replace them with new digits.  The addition table is radically different.  In my proposal, the changes to the addition table are quite minor.  7+2 is still equal to 9, 1 + X is still equal to E.  

Think about it this way:  whats the *smallest possible change* you could make to convert a vanilla base into a signed base?  And measure "smallest" by least disturbance to the addition table and rules of arithmetic?   I don't know if my proposal is the smallest or not, but its pretty small.  The only change is the change to the carry rule.

And as far as E being a negative number, yeah its whack, but hardly unprecidented.  Consider complement arithmetic.  In binary two's complement, the leading "1" in the number "1111" doesn't mean one.  It doesn't even mean one times two to the power of 3. 
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 15 2018, 03:59 AM #17

SenaryThe12th wrote:I think here you put your finger on the central point of disagreement.   I think you are using (-1) with different meanings in different contexts.
Technically, I'm not.  I'm not proposing that the literal string \(-1\) (with or without parentheses) can appear in a positional column within a numeral (unless you go back to that ASCII fallback I described earlier). I'm proposing an alternate syntax, \(\overset{-}1\), that places the minus over the 1. It means the same value, but can be squeezed into a positional numeral.  Actually, it's not even technically my own proposal, because people have long been putting overbars on digits to make them signed. All I'm suggesting is that we interpret that overbar as the same minus symbol you see in \(-1\), just repositioned for convenience.
You are proposing that in vanilla dozenal contexts, (-1)5 means -1; * 5;.
I am not proposing any change of meaning for that syntax. It would remain true that \((-1)5 = -1\times 5 = -5\), just as it does now.
But in signed dozenal contexts, it means -1; * 10; ^ 1; + 5; . Those are two very different meanings for the same string "(-1)".
But the syntax I am proposing for that is not \((-1)5\). That is your idea, not mine. We can't embed parentheses within a positional-place-value numeral, currently, and I am not proposing any different. The syntax I am proposing for that is:

\(\mathrm{\overset{-}15_z = -1\times10_z + 5 = -7}\)
But that really ok!    The very wonder of learning about new bases is that you learn that, say, "2" doesn't *have*s mean "two times ten raised to the power of whatever place it finds itself in".   When we generalize to operating in multiple bases, we endow our old digits with new, more flexible and wonderful meanings.
I agree with the spirit of this, but I dislike the way you're characterizing it. See, the only part of the phrase "two times the base raised to whatever power" that I ascribe to the actual symbol "2" is the word "two". The "times the base raised to whatever power" I ascribe to the position. This is why I can say that in our current "vanilla" syntax, a 2 is a 2 is a 2, no matter where you see it.  But when you see it in a positional column in a based numeral, the position itself implicitly encodes a power of the base, that the "two" then gets multiplied by.
Why use "E" to represent -1, when you can just use "-1" to represent -1, and leave "E" to represent E (i.e., eleven)?
Because *anytime* you are changing bases, you arn't "just" using -1 to represent -1.  You are using (-1) to mean "minus one times the new base (not the old base)  raised to the power of whatever place (-1) finds itself in".
Again, the only part of that phrase that I'm ascribing to the \(\overset{-}1\) is the "minus one".  I'm ascribing the "times the base raised to the power" to the position itself.
What's more, you are changing the meaning of "place".  "Place" used to just mean the cardinal number of the symbol, counting from the right of the number.  In your proposal, Its actually kind of tricky even to precisely state how to parse out the string to find a symbol's place value.
I'm not changing the "meaning" of a "place", just proposing an extension of the syntax for one.  This is no worse than what's been proposed for "large" superbases composed of one or more smaller subbases, requiring multiple columns per "place".  As for parsing precision, I'd say the syntax you're trying to impose on this idea certainly muddles it up, with those parentheses you keep insisting on bringing in where they just wouldn't fit in within a positional-place-value numeral.  But I think if you look carefully at both the ASCII fallback syntax I proposed, as well as this \(\LaTeX\)-typeset digit-with-overset-sign syntax I'm proposing here, in both cases how to parse it is pretty well-determined.
Playing this game of pretending that "E" sometimes means -1, but sometimes just means E, would mean either every usage becomes ambiguous, or we'd  have to introduce a distinction of annotation
But you are playing the same game with (-1) as I am with E.  My usage of E isn't any more or less ambiguous than yours; in both cases we have to know whether we're in the context of doing vanilla arithmetic or signed arithmetic.
Actually no. I've already alluded to this. With your treatment of E, you really would need to mark the fact that you're working with a different encoding, distinct from the "vanilla" one.  But with my proposal, there really wouldn't need to be any difference in annotation between "vanilla dozenal" and "signed dozenal".  We can annotate both with the same "z" annotation; they really are the same representation. The only difference between vanilla and signed is whether or not the numeral happens to include any negative digits. All the normal positive digits just keep their original meanings.

Let me illustrate this by looking at the addition and multiplication tables, in senary rather than dozenal, for the sake of brevity:

[6] All values in tables are senary:

ADDITION:
\(+\) \(0\) \(1\) \(2\) \(3\) \(4\)
\(1\overset{-}2\)
\(5\)
\(1\overset{-}1\)
\(10\)
\(0\) \(0\) \(1\) \(2\) \(3\) \(4\)
\(1\overset{-}2\)
\(5\)
\(1\overset{-}1\)
\(10\)
\(1\) \(1\) \(2\) \(3\) \(4\)
\(1\overset{-}2\)
\(5\)
\(1\overset{-}1\)
\(10\) \(11\)
\(2\) \(2\) \(3\) \(4\)
\(1\overset{-}2\)
\(5\)
\(1\overset{-}1\)
\(10\) \(11\) \(12\)
\(3\) \(3\) \(4\)
\(1\overset{-}2\)
\(5\)
\(1\overset{-}1\)
\(10\) \(11\) \(12\) \(13\)
\(4\)
\(1\overset{-}2\)
\(4\)
\(1\overset{-}2\)
\(5\)
\(1\overset{-}1\)
\(10\) \(11\) \(12\) \(13\) \(14\)
\(2\overset{-}2\)
\(5\)
\(1\overset{-}1\)
\(5\)
\(1\overset{-}1\)
\(10\) \(11\) \(12\) \(13\) \(14\)
\(2\overset{-}2\)
\(15\)
\(2\overset{-}1\)
\(10\) \(10\) \(11\) \(12\) \(13\) \(14\)
\(2\overset{-}2\)
\(15\)
\(2\overset{-}1\)
\(20\)

MULTIPLICATION:
\(\times\) \(1\) \(2\) \(3\) \(4\)
\(1\overset{-}2\)
\(5\)
\(1\overset{-}1\)
\(10\)
\(1\) \(1\) \(2\) \(3\) \(4\)
\(1\overset{-}2\)
\(5\)
\(1\overset{-}1\)
\(10\)
\(2\) \(2\) \(4\)
\(1\overset{-}2\)
\(10\) \(12\) \(14\)
\(2\overset{-}2\)
\(20\)
\(3\) \(3\) \(10\) \(13\) \(20\) \(23\) \(30\)
\(4\)
\(1\overset{-}2\)
\(4\)
\(1\overset{-}2\)
\(12\) \(20\) \(24\)
\(3\overset{-}2\)
\(32\) \(40\)
\(1\overset{-}20\)
\(5\)
\(1\overset{-}1\)
\(5\)
\(1\overset{-}1\)
\(14\)
\(2\overset{-}2\)
\(23\) \(32\) \(41\)
\(1\overset{-}21\)
\(50\)
\(1\overset{-}10\)
\(10\) \(10\) \(20\) \(30\) \(40\)
\(1\overset{-}20\)
\(50\)
\(1\overset{-}10\)
\(100\)

The top number in each cell is the "vanilla" senary value. If it's by itself, then it's also the "signed" senary value, although it lacks any actual negative digits. The bottom number in each cell, if present, is a "signed" equivalent of the top value, with any \(4\) or \(5\) converted to a \(1\overset{-}2\) or \(1\overset{-}1\) and the \(1\) carried. As I've indicated, all of these, both "vanilla" and "signed", can be annotated simply with a subscript 6: they are all just senary, but some just happen to have negative digits. 

Funny, but that's exactly how I'd characterize what I'm proposing: We don't add any new symbols,
Aren't overlined numbers new symbols?
Not really. In \(\overset{-}1\), the \(1\) is still just a \(1\), and that overset minus is still just a minus sign. The minus is oriented a little differently in order to fit into a positional numeral, but there really isn't anything new there.  Using negative values in positional columns is pretty radical, but the representation of those values is pretty straightforward.
If I mean "eleven" I'm going to say E.
Well, when you say "EE" you don't mean two elevens.
Well, yes I do. Both instances are an "eleven". It's just that the position of the first one implies a factor of dozen it gets multiplied by.
But even beyond that, I'd argue that you've changed the meaning of "E" even more radically than I have.  In my system, the only change to the rules of addition and subtraction is that we carry when we roll over from 6 to 7, and not when rolling over from E to 0.   In your system, E doesn't even have a meaning anymore :-)
Yes it does. Vanilla dozenal and signed dozenal really share the same scheme, they're both just "dozenal".  The E still means eleven, and we retain it when we want to represent a number fully vanilla.
You drop half the digits, and replace them with new digits.
I'm not dropping anything. I'm just allowing any digit to be negated.  Any digit.  Even E. 🙂  It's just that, to support your version of balanced signed arithmetic, we might choose to limit ourselves to the conversions \(\mathrm{7_z = 1\overset{-}5_z}\), \(\mathrm{8_z = 1\overset{-}4_z}\), \(\mathrm{9_z = 1\overset{-}3_z}\), \(\mathrm{X_z = 1\overset{-}2_z}\), \(\mathrm{E_z = 1\overset{-}1_z}\). But we could entertain other arithmetic schemes, for instance, what if we also include the conversion \(\mathrm{6_z = 1\overset{-}6_z}\). That would shift the balance (yielding the same number of negative and positive digits), yet would still be compatible with vanilla dozenal as well as your balanced scheme, all under the same overarching "dozenal" representation.

Similarly, for senary, I'm not dropping digits 4 and 5. I'm just allowing any senary digit to be negated. But again, to support your version of balanced signed arithmetic, we might choose to limit ourselves to the conversions \(4_6 = 1\overset{-}2_6\) and \(5_6 = 1\overset{-}1_6\).  But now that any digit is allowed to be negative, we can support a lot of possibilities.  For instance what if we also include the conversion \(3_6 = 1\overset{-}3_6\).  That would yield a different balance, with equal negative and positive digits, yet would still be compatible with vanilla senary and your balanced version, all under the same overarching "senary" representation. 
The addition table is radically different.  In my proposal, the changes to the addition table are quite minor.  7+2 is still equal to 9, 1 + X is still equal to E.
But in your scheme, 7, 8, 9, X, and E don't really mean what they used to mean any more. They actually mean -5, -4, -3, -2, -1.  Your \(7+2=9\) really means \(-5+2=-3\).  Your \(\mathrm{1+X=E}\) really means \(1-2=-1\). You're just obscuring those facts.  And your addition table is just as radical, it just obscures that it is. (Let me go back to senary for a smaller example):

ADDITION:
All numbers in this table in Senary's signed senary:
\(+\) \(0\) \(1\) \(2\) \(3\) \(14\) \(15\) \(10\)
\(0\) \(0\) \(1\) \(2\) \(3\) \(14\) \(15\) \(10\)
\(1\) \(1\) \(2\) \(3\) \(14\) \(15\) \(10\) \(11\)
\(2\) \(2\) \(3\) \(14\) \(15\) \(10\) \(11\) \(12\)
\(3\) \(3\) \(14\) \(15\) \(10\) \(11\) \(12\) \(13\)
\(14\) \(14\) \(15\) \(10\) \(11\) \(12\) \(13\) \(24\)
\(15\) \(15\) \(10\) \(11\) \(12\) \(13\) \(24\) \(25\)
\(10\) \(10\) \(11\) \(12\) \(13\) \(24\) \(25\) \(20\)
 
I wouldn't know what annotation to give this. It's not compatible at all with "vanilla" senary or my explicitly-signed senary.  If the fact that "14" and "15" are less than "10", and "24" and "25" are less than "20" aren't "radical", I don't know what would be.
 
Think about it this way:  whats the *smallest possible change* you could make to convert a vanilla base into a signed base?  And measure "smallest" by least disturbance to the addition table and rules of arithmetic?   I don't know if my proposal is the smallest or not, but its pretty small.  The only change is the change to the carry rule.
That's pretty radical in and of itself.  Note for instance that in your dozenal addition table, X+X would no longer equal 18. It would just equal 8. Seems wierd.  But that's because your X would really mean -2 and your 8 would really mean -4.  In my scheme we would make that explicit by using \(\overset{-}2\) and \(\overset{-}4\) instead.
And as far as E being a negative number, yeah its whack, but hardly unprecidented.  Consider complement arithmetic.  In binary two's complement, the leading "1" in the number "1111" doesn't mean one.  It doesn't even mean one times two to the power of 3.
I'm quite familiar with one's complement and two's complement integer encodings, being in the business I'm in. I'm also familiar with how those encodings make for relatively efficient processing by a dumb machine, but not very intuitive understanding by most humans.  We've got multiple layers of operating system and app code these days that give us a bit more human-friendly interpretation of those things. Why would we want to dumb ourselves down to the machine level, where we might manage to do the calculation, but without any idea of what we were doing, how we were doing it, or what it meant?  A lot of the art of numerical methods programming is in working around the inherent limitations of the raw machine representation of numbers.  Why would we want to emulate those limitations?
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 15 2018, 11:40 AM #18

Here, let's break up those tables to make them less cluttered.

(Ugh, those overset minuses, combined with tapatalk's feature-poor tables, completely messed up the alignment of the numbers. I had to do some pretty tricky stuff to get them to align right. Don't look at the raw bbcode, it ain't pretty. 🙂)

[6] All values in tables are senary:

Here's plain vanilla senary addition:

ADDITION:
\(+\) \(0\) \(1\) \(2\) \(3\) \(4\) \(5\) \(10\)
\(0\) \(0\) \(1\) \(2\) \(3\) \(4\) \(5\) \(10\)
\(1\) \(1\) \(2\) \(3\) \(4\) \(5\) \(10\) \(11\)
\(2\) \(2\) \(3\) \(4\) \(5\) \(10\) \(11\) \(12\)
\(3\) \(3\) \(4\) \(5\) \(10\) \(11\) \(12\) \(13\)
\(4\) \(4\) \(5\) \(10\) \(11\) \(12\) \(13\) \(14\)
\(5\) \(5\) \(10\) \(11\) \(12\) \(13\) \(14\) \(15\)
\(10\) \(10\) \(11\) \(12\) \(13\) \(14\) \(15\) \(20\)

Here's the (unbalanced) signed senary scheme equivalent to what SenaryThe12th has been using (except that he uses \(4\), \(5\) to stand for \(\overset{-}2\), \(\overset{-}1\)):

ADDITION:
\(\overset{\color{white}+}+\) \(\overset{\color{white}+}0\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(\overset{\color{white}+}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\)
\(\overset{\color{white}+}0\) \(\overset{\color{white}+}0\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(\overset{\color{white}+}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\)
\(\overset{\color{white}+}1\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(\overset{\color{white}+}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\)
\(\overset{\color{white}+}2\) \(\overset{\color{white}+}2\) \(\overset{\color{white}+}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\)
\(\overset{\color{white}+}3\) \(\overset{\color{white}+}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\) \(\overset{\color{white}+}13\)
\(1\overset{-}2\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\) \(\overset{\color{white}+}13\) \(2\overset{-}2\)
\(1\overset{-}1\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\) \(\overset{\color{white}+}13\) \(2\overset{-}2\) \(2\overset{-}1\)
\(\overset{\color{white}+}10\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\) \(\overset{\color{white}+}13\) \(2\overset{-}2\) \(2\overset{-}1\) \(\overset{\color{white}+}20\)

And here's a balanced signed senary scheme that includes \(\overset{-}3\) (which SenaryThe12th would wind up representing as just \(3\)):

ADDITION:
\(\overset{\color{white}+}+\) \(\overset{\color{white}+}0\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(1\overset{-}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\)
\(\overset{\color{white}+}0\) \(\overset{\color{white}+}0\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(1\overset{-}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\)
\(\overset{\color{white}+}1\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(1\overset{-}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\)
\(\overset{\color{white}+}2\) \(\overset{\color{white}+}2\) \(1\overset{-}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\)
\(1\overset{-}3\) \(1\overset{-}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\) \(\overset{\color{white}+}2\overset{-}3\)
\(1\overset{-}2\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\) \(2\overset{-}3\) \(2\overset{-}2\)
\(1\overset{-}1\) \(1\overset{-}1\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\) \(2\overset{-}3\) \(2\overset{-}2\) \(2\overset{-}1\)
\(\overset{\color{white}+}10\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}11\) \(\overset{\color{white}+}12\) \(2\overset{-}3\) \(2\overset{-}2\) \(2\overset{-}1\) \(\overset{\color{white}+}20\)

But as I've indicated, these are all just examples of senary base, after allowing the possibility of negative digits.  Hence all of the following can be annotated as being the same base:

\(1\overset{-}3_6 = (1)\times10_6^1 + (-3)\times10_6^0 = 10_6 - 3_6 = 3_6\)
\(2\overset{-}3_6 = (2)\times10_6^1 + (-3)\times10_6^0 = 20_6 - 3_6 = 13_6\)
\(1\overset{-}3\overset{-}3_6 = (1)\times10_6^2 + (-3)\times10_6^1 + (-3)\times10_6^0 = 100_6 - 30_6 - 3_6 = 23_6\)
\(1\overset{-}2\overset{-}3_6 = (1)\times10_6^2 + (-2)\times10_6^1 + (-3)\times10_6^0 = 100_6 - 20_6 - 3_6 = 33_6\)
\(1\overset{-}1\overset{-}3_6 = (1)\times10_6^2 + (-1)\times10_6^1 + (-3)\times10_6^0 = 100_6 - 10_6 - 3_6 = 43_6\)
\(10\overset{-}3_6 = (1)\times10_6^2 + (0)\times10_6^1 + (-3)\times10_6^0 = 100_6 + 0_6 - 3_6 = 53_6\)
\(11\overset{-}3_6 = (1)\times10_6^2 + (1)\times10_6^1 + (-3)\times10_6^0 = 100_6 + 10_6 - 3_6 = 103_6\)
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 15 2018, 02:44 PM #19

Let's do a similar breakout for the multiplication tables:

[6] All numbers in tables are senary


PLAIN VANILLA SENARY:
\(\times\) \(1\) \(2\) \(3\) \(4\) \(5\) \(10\)
\(1\) \(1\) \(2\) \(3\) \(4\) \(5\) \(10\)
\(2\) \(2\) \(4\) \(10\) \(12\) \(14\) \(20\)
\(3\) \(3\) \(10\) \(13\) \(20\) \(23\) \(30\)
\(4\) \(4\) \(12\) \(20\) \(24\) \(32\) \(40\)
\(5\) \(5\) \(14\) \(23\) \(32\) \(41\) \(50\)
\(10\) \(10\) \(20\) \(30\) \(40\) \(50\) \(100\)

UNBALANCED SIGNED SENARY:
\(\overset{\color{white}+}\times\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(\overset{\color{white}+}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\)
\(\overset{\color{white}+}1\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(\overset{\color{white}+}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\)
\(\overset{\color{white}+}2\) \(\overset{\color{white}+}2\) \(1\overset{-}2\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}12\) \(2\overset{-}2\) \(\overset{\color{white}+}20\)
\(\overset{\color{white}+}3\) \(\overset{\color{white}+}3\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}13\) \(\overset{\color{white}+}20\) \(\overset{\color{white}+}23\) \(\overset{\color{white}+}30\)
\(1\overset{-}2\) \(1\overset{-}2\) \(\overset{\color{white}+}12\) \(\overset{\color{white}+}20\) \(3\overset{-}2\) \(\overset{\color{white}+}32\) \(1\overset{-}20\)
\(1\overset{-}1\) \(1\overset{-}1\) \(2\overset{-}2\) \(\overset{\color{white}+}23\) \(\overset{\color{white}+}32\) \(1\overset{-}21\) \(1\overset{-}10\)
\(\overset{\color{white}+}10\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}20\) \(\overset{\color{white}+}30\) \(1\overset{-}20\) \(1\overset{-}10\) \(\overset{\color{white}+}100\)

BALANCED SIGNED SENARY:
\(\overset{\color{white}+}\times\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(1\overset{-}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\)
\(\overset{\color{white}+}1\) \(\overset{\color{white}+}1\) \(\overset{\color{white}+}2\) \(1\overset{-}3\) \(1\overset{-}2\) \(1\overset{-}1\) \(\overset{\color{white}+}10\)
\(\overset{\color{white}+}2\) \(\overset{\color{white}+}2\) \(1\overset{-}2\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}12\) \(2\overset{-}2\) \(\overset{\color{white}+}20\)
\(1\overset{-}3\) \(1\overset{-}3\) \(\overset{\color{white}+}10\) \(2\overset{-}3\) \(\overset{\color{white}+}20\) \(1\overset{-}3\overset{-}3\) \(1\overset{-}30\)
\(1\overset{-}2\) \(1\overset{-}2\) \(\overset{\color{white}+}12\) \(\overset{\color{white}+}20\) \(1\overset{-}3\overset{-}2\) \(1\overset{-}32\) \(1\overset{-}20\)
\(1\overset{-}1\) \(1\overset{-}1\) \(2\overset{-}2\) \(1\overset{-}3\overset{-}3\) \(1\overset{-}32\) \(1\overset{-}21\) \(1\overset{-}10\)
\(\overset{\color{white}+}10\) \(\overset{\color{white}+}10\) \(\overset{\color{white}+}20\) \(1\overset{-}30\) \(1\overset{-}20\) \(1\overset{-}10\) \(\overset{\color{white}+}100\)
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 15 2018, 05:33 PM #20

Do I have to turn on a setting or something?  The tables for me are coming through in their markup source code, not formatted.
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 15 2018, 06:06 PM #21

SenaryThe12th wrote: Do I have to turn on a setting or something?  The tables for me are coming through in their markup source code, not formatted.
Oh sorry, I had to resort to using LaTeX typesetting to get overbars on numbers. What you need is:

- Firefox browser
- GreaseMonkey plugin for Firefox, which enables userscripts
- Mathjax for tapatalk  userscriot, which enables LatTeX typesetting.
Last edited by Kodegadulo on Sep 15 2018, 06:45 PM, edited 1 time in total.
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 15 2018, 06:15 PM #22

Oh sorry, I had to resort to using LaTeX typesetting to get ovebars on numbers. What you need is:

- Firefox browser
- GreaseMonkey plugin for Firefox, which enables userscripts
- Mathjax for tapatalk  userscriot, which enables LatTeX typesetting.
I rest my case :)
Quote
Like
Share

Kodegadulo
Obsessive poster
Kodegadulo
Obsessive poster
Joined: Sep 10 2011, 11:27 PM

Sep 15 2018, 07:19 PM #23

SenaryThe12th wrote:
Oh sorry, I had to resort to using LaTeX typesetting to get ovebars on numbers. What you need is:

- Firefox browser
- GreaseMonkey plugin for Firefox, which enables userscripts
- Mathjax for tapatalk  userscriot, which enables LatTeX typesetting.
I rest my case :)
M1n1f1g, a bright UK kid, set up the Mathjax script here some years ago. Hey, if you get into any kind of deep mathematical stuff around here, eventually you have to break out LaTeX math mode.
As of 1202/03/01[z]=2018/03/01[d] I use:
ten,eleven = ↊↋, ᘔƐ, ӾƐ, XE or AB.
Base-neutral base annotations
Systematic Dozenal Nomenclature
Primel Metrology
Western encoding (not by choice)
Greasemonkey + Mathjax + PrimelDozenator
(Links to these and other useful topics are in my index post;
click on my user name and go to my "Website" link)
Quote
Like
Share

SenaryThe12th
Casual Member
SenaryThe12th
Casual Member
Joined: Mar 1 2018, 02:03 PM

Sep 15 2018, 08:50 PM #24

M1n1f1g, a bright UK kid, set up the Mathjax script here some years ago.  Hey, if you get into any kind of deep mathematical stuff around here, eventually you have to break out LaTeX math mode.

I got it all set up now, thanks!   While I was blissfully sleeping, you wrote a lot, so if I miss one of your points which you want to come back around and address, pls let me know....I may have missed one or two.  Here goes.
Aren't overlined numbers new symbols?
Not really. In \(\overset{-}1\), the \(1\) is still just a \(1\), and that overset minus is still just a minus sign.
Still seems like this is a central point we'll have to resolve.  It seems to me that you have to pick one of these options:

1.  The overlined 1 is not a new symbol; its just a squashed way of writing -1.  Since we are using those two symbols as a digit--which is different from how we used them before, we are changing the meanings of those symbols.
2.  The overlined 1 is a new symbol.  We were forced to add a new symbol, because none of our old symbols had the meaning we needed.

#1 and #2 are flatly contradictory--either its a new symbol, or its not.  I don't care which way we consider it; but please lets pick one so its easier for me to follow.  Which way you wanna go?
Again, the only part of that phrase that I'm ascribing to the \(\overset{-}1\) is the "minus one".  I'm ascribing the "times the base raised to the power" to the position itself.
Seems kind of like saying that you can define what, say, a rook in chess is, independently of defining what are the valid moves it can make on the chessboard.  I don't see how you can even define the notion of a "position" without mentioning that "2" is the kind of thing which could occupy that position. 
 I'm not dropping anything. I'm just allowing any digit to be negated.  Any digit.  ... Similarly, for senary, I'm not dropping digits 4 and 5. I'm just allowing any senary digit to be negated.
I don't follow; surely if you allow all the digits 0,1,2,3,4,5 to be negated, you end up with ballanced decimal, and not ballanced senary?  For it to remain ballanced senary, you have to drop the 4,5,

 And your addition table is just as radical, it just obscures that it is.
And I would have gotten away with it, if it hand't been for you meddling kids!!!!
W.r.t. the tables, here's how I lay out the tables (using homespun ascii).  I put it to you, signed senary using my digit convention does the least violence to the table:

Code: Select all



     Vanilla Senary                 Signed Senary                   Signed Senary                    Ballanced Senary
                                 (proposed convention)          (traditional convention)          (traditional conventioion)
                                                                                  _   _                           _   _   _
+ |   1   2   3   4   5        + |   1   2   3   4   5          + |   1   2   3   2   1         + |   1   2   3   2   1   3
--+----------------------      --+----------------------        --+--------------------         --+------------------------
  |                              |                                |           _   _               |           _   _       _
1 |   2   3   4   5  10        1 |   2   3  14   5   0          1 |   2   3  12   1   0         1 |   2   3  12   1   0   2
  |                              |                                |       _   _                   |       _   _           _
2 |   3   4   5  10  11        2 |   3  14   5   0   1          2 |   3  12   1   0   1         2 |   3  12   1   0   1   1
  |                              |                                |   _   _                       |   _   _
3 |   4   5  10  11  12        3 |  14   5  10   1   2          3 |  12   1  10   1   2         3 |  12   1  10   1   2   0
  |                              |                              _ |   _          _   _          _ |   _          _   _   _
4 |   5  10  11  12  13        4 |   5   0   1  52  53          2 |   1   0   1  12  13         2 |   1   0   1  12  13  11
  |                              |                              _ |              _    _         _ |              _    _   _
5 |  10  11  12  13  14        5 |   0   1   2  53   4          1 |   0   1   2  13   2         1 |   0   1   2  13   2  12
                                                                                                _ |   _   _      _   _   _
                                                                                                3 |   2   1   0  11  12  10







 I'm quite familiar with one's complement and two's complement integer encodings, being in the business I'm in.

Yeah, I know you are!  Which is why I was so surprised that you'd think that using positive digits to represent negative numbers was such "crazy making".

I'm also familiar with how those encodings make for relatively efficient processing by a dumb machine, but not very intuitive understanding by most humans.  We've got multiple layers of operating system and app code these days that give us a bit more human-friendly interpretation of those things. Why would we want to dumb ourselves down to the machine level, where we might manage to do the calculation, but without any idea of what we were doing, how we were doing it, or what it meant?  A lot of the art of numerical methods programming is in working around the inherent limitations of the raw machine representation of numbers.  Why would we want to emulate those limitations?
Complement arithmetic isn't something which is completely incompatible with the human mind. Back in ye goode olde days when people used hand-cranked mechanical calculators, up until the 1950's or so, the only way to do subtraction on them was to use complement arithmetic.  The Curta handheld calculator uses complement arithmetic.  Even today, in mental math competitions, the mathletes use complement arithmetic to turn hard subtraction problems into easy addition problems.  Arthur Benjamine's "The great courses" course on mental math has a lesson on it. https://www.thegreatcourses.com/courses ... -math.html

Really, the overwhelmingly vast majority of computations the human race has ever done has used positive integers to represent negative numbers.  This was true even in the days of mechanical calculators.  If you are going by shear statistics, its crazy making to do it any other way :-)
Quote
Like
Share