Pages: [1] 2   Go Down
 Author Topic: Keyboard in base 60  (Read 1956 times) 0 Members and 1 Guest are viewing this topic.
Offline
Jr. Member
Karma: 0
Posts: 54
 « on: December 20, 2012, 10:27:21 am » Bigger Smaller Reset

Hi guys,
I am trying to build a keyboard to insert numbers in base 60 and I am very frustrated
because there is not any single example on internet about it.
The reason I'm doing this is that I believe the decimal system is wrong for many reasons
and the number 60 would be the best option for a new number system.
I created my own characters and I want to insert them on a LCD using an Arduino.
Possibly, I would like to make conversions from decimal and binary.
Up to now I have the following:
8/8 button matrix
and
64 button shield for Arduino
I don't know which Arduino would be better because I need 16 inputs from the 64 button shield.
Once everything connected, the biggest task will be programming.
Has anyone got any idea how to convert decimal and binary numbers to base 60?
Any suggestion would be very helpful.
Regards
 Logged

Netherlands
Offline
Tesla Member
Karma: 101
Posts: 9553
In theory there is no difference between theory and practice, however in practice there are many...
 « Reply #1 on: December 20, 2012, 12:11:49 pm » Bigger Smaller Reset

Think you need a MEGA ..

base 60 is just a representation of integers, just like binary and decimal and octal and septal and quintal ...etc.

try this.
Code:
// converts long to string in some base
char* convertBase(long nr, int base)
{
static char s[34];
uint8_t digits[34];
int idx = 0;
boolean negative = false;

// prevent overflow
if (base<1) base = 2;
// handle sign
if (nr < 0)
{
negative = true;
nr = -nr;
}
// strip digits
while (nr >0)
{
digits[idx++] = nr % base;
nr = nr/base;
}
int i=0;
if (negative) s[i++]='-';
while (idx > 0)
{
s[i++] = '0' + digits[--idx];  // mapping upon a readable part of ascii table
}
s[i] = '\0';
return s;
}

void setup()
{
Serial.begin(9600);
for (int b=2; b<128; b++)
{
Serial.print(b);
Serial.print("\t");
Serial.println(convertBase(12345678, b));
}
}

void loop(){}
 Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

SF Bay Area (USA)
Offline
Karma: 80
Posts: 5513
Strongly opinionated, but not official!
 « Reply #2 on: December 21, 2012, 04:46:08 am » Bigger Smaller Reset

Code:
s[i++] = '0' + digits[--idx];  // mapping upon a readable part of ascii table

That part is going to be a bit tricky for base 60.  If you're using your own character set, you can do something like:
Code:
s[i++] = glyph[digits[--idx]];

(I call "troll", BTW...)
 Logged

nr Bundaberg, Australia
Offline
Tesla Member
Karma: 75
Posts: 6975
Scattered showers my arse -- Noah, 2348BC.
 « Reply #3 on: December 21, 2012, 06:21:34 am » Bigger Smaller Reset

Quote
insert numbers in base 60 and I am very frustrated because there is not any single example on internet about it.
No shit, I wonder why. Expecting aliens with 60 fingers to land soon?

_______
Rob
 Logged

Rob Gray aka the GRAYnomad http://www.robgray.com

Gosport, UK
Offline
Karma: 19
Posts: 3117
 « Reply #4 on: December 21, 2012, 06:29:59 am » Bigger Smaller Reset

Quote
The reason I'm doing this is that I believe the decimal system is wrong for many reasons
and the number 60 would be the best option for a new number system.

While there may be some things wrong with decimal, sexagesimal is hardly new. The Sumerians used it back in the bronze age.
 Logged

Netherlands
Offline
Tesla Member
Karma: 101
Posts: 9553
In theory there is no difference between theory and practice, however in practice there are many...
 « Reply #5 on: December 21, 2012, 11:26:11 am » Bigger Smaller Reset

Quote
The Sumerians used it back in the bronze age.
Very true, think the 24 hour clock with 60 minutes/seconds can be traced back to them.

But imagine the multiplication (clay)tables you had to learn in those ages, 1x1 to 60x60
 Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Offline
Jr. Member
Karma: 0
Posts: 54
 « Reply #6 on: December 21, 2012, 06:21:28 pm » Bigger Smaller Reset

Not everything coming from bronze ages is old fashioned.
Just to clarify, money and the alphabet was invented during that time,
and maths was the first science to be adopted by humans. There are many other things
like Christianity, but this is not a philosophical discussion...
Regarding the aliens, we don't know how many fingers they have, but if they are advanced enough,
they definitely use the numbers in base 60 and 64. It's enough to know a bit of maths and electronics
to understand my point.
The only reason we use a decimal system is because French Revolution decided that, and know what?...
we are now too lazy to admit it is wrong.
Come on guys, it's not that hard to build a new computer keyboard in base 60.
Just think of the benefits. I'm not going to explain now all the reasons why the decimal system is wrong.
My idea might look crazy but all the great ideas seemed crazy until people begun
to understand them.
In a few years the decimal system will be useless. Numbers are getting already too big
and we don't have any idea how to deal with them.
simplify km of computer code.
Thank you anyway.
You are free to make fun of anything you don't understand. In a few years  perhaps will be my
turn to laugh.
 Logged

Global Moderator
Boston area, metrowest
Online
Brattain Member
Karma: 270
Posts: 17051
Available for Design & Build services
 « Reply #7 on: December 21, 2012, 06:26:57 pm » Bigger Smaller Reset

Please clarify - how does base 2^6 simplify things?
 Logged

Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17

nr Bundaberg, Australia
Offline
Tesla Member
Karma: 75
Posts: 6975
Scattered showers my arse -- Noah, 2348BC.
 « Reply #8 on: December 22, 2012, 12:33:47 am » Bigger Smaller Reset

Quote
Just think of the benefits.
Thinking.............................nope, it's not coming to me.

I admit that if you could find a reliable way to represent say 64 levels in a single bit you'd be onto something, but that's a slightly different story to building a keyboard.

_____
Rob
 Logged

Rob Gray aka the GRAYnomad http://www.robgray.com

Netherlands
Offline
Tesla Member
Karma: 101
Posts: 9553
In theory there is no difference between theory and practice, however in practice there are many...
 « Reply #9 on: December 22, 2012, 09:31:00 am » Bigger Smaller Reset

Quote
I'm not going to explain now all the reasons why the decimal system is wrong.
You do not have to explain, just post a link (or more) is enough

Quote
in base 60 and 64
base 64 is a power of 2, and 2 is a fundamental base as it is the first integer base that allows for shorter representation of natural numbers. However 64 is 2^6 and 6 is not so fundamental. hexadecimal bas 16 is much more elementary as it is  2^2^2 = 2^4 = 16, 256 is the next in this line 256 = 2^2^2^2 and 65536 is 2^2^2^2^2 .

The only special thing of 60 is that it has many (12) dividers (1,2,3,4,5,6,10,12,15,20,30,60)  That makes it easy to divide numbers and stay in the integer domain.
And yes that makes some things easy (like splitting an hour)

But:
Base 60 or base 10 or base 12 or ... whatever is just a (human) representation of the number. Numbers and their properties do not change by presenting it in another base. A number which is prime in base 10 will also be prime in base 2,3,4,5,6 until a zillion and more. numbers that are each other dividers are that in any base.

I am not familiar with any basic numeric property that changes (pos/neg) due to different base except for the letter=digit puzzles like:
give
more
------  +
money

OK what does wikipedia say :
- http://en.wikipedia.org/wiki/Sexagesimal -
look at how in the Babylonian mathematics base 60 was represented: looks quite decimal to me ...

- http://en.wikipedia.org/wiki/60_(number)
the number pops up several times in some corners of the math universe but so does PI ...

so still not convinced that base 60 is better than base 10

There are 10 types of people in the world: Those who understand binary, and those who don't...
 Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Offline
Jr. Member
Karma: 0
Posts: 54
 « Reply #10 on: December 22, 2012, 12:23:30 pm » Bigger Smaller Reset

I guess we are moving from programming to philosophy.
Look, I am neither a mathematician nor a scientist but if I  want
to write one billion in binary I need 30 digits. In base 64 I only need 5.
Isn't this clear enough?
I'm wondering who is able to memorize 30 digits.
A bigger base also offers more combinations creating less confusion when
handling the numbers. Believe it or not, information grows exponentially and we have
to store all of it in binary. I don't have any idea how many digits we need to translate
a book, for example. The answer must be something kilo-metric.
Of course, you are going to say that computers are increasingly powerful. I agree, but even
computers work in certain limits. Moore's Law cannot go for ever.
 Logged

Gosport, UK
Offline
Karma: 19
Posts: 3117
 « Reply #11 on: December 22, 2012, 12:32:57 pm » Bigger Smaller Reset

Quote
I'm wondering who is able to memorize 30 digits.

So how many symbols are we expected to memorize to use base 60 or 64?
 Logged

Global Moderator
Boston area, metrowest
Online
Brattain Member
Karma: 270
Posts: 17051
Available for Design & Build services
 « Reply #12 on: December 22, 2012, 01:19:47 pm » Bigger Smaller Reset

Scientific/exponential notation is always good for the bigger numbers.
1E^3 = 1 thousand
1E^6 = 1 million
1E^9 = 1 billion
1E^12 = 1 trillion
1E^15 = 1 gazillion?
Still just need 0-9.
 Logged

Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17

Netherlands
Offline
Tesla Member
Karma: 101
Posts: 9553
In theory there is no difference between theory and practice, however in practice there are many...
 « Reply #13 on: December 22, 2012, 02:37:10 pm » Bigger Smaller Reset

Agree with CrossRoads! (of course base64 can have its own exponential notation too

Quote
I agree, but even computers work in certain limits. Moore's Law cannot go for ever.
So? Those limits are way beyond human's limits in terms of amount of data processing...

How will base64 help with really big numbers like Ackermann(5,5)?  - http://en.wikipedia.org/wiki/Ackermann_function -
(decimal notations fails here too)
 Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Offline
Jr. Member
Karma: 0
Posts: 54
 « Reply #14 on: December 27, 2012, 11:37:52 am » Bigger Smaller Reset

Quote
So how many symbols are we expected to memorize to use base 60 or 64?

Not too many, compared to the number of apps people have on their smartphones.
There are more than 700000 apps, most of them useless.
People today are just so reluctant at learning anything useful!
We are so incredibly busy at doing nothing.
What we really need is some apps to teach people some basic maths.
So, perhaps we can expect to end this depression, or crisis or whatever it is.

Thank you guys for keeping this conversation interesting.
 Logged

 Pages: [1] 2   Go Up