# Difference between revisions of "Tonal Bitcoin"

(Reword introduction a bit nicer) |
(Clarify criticism and explain flaw) |
||

Line 134: | Line 134: | ||

* [[User:Davout|Davout]] has to google this page each time someone mentions an amount in tonal bitcoin | * [[User:Davout|Davout]] has to google this page each time someone mentions an amount in tonal bitcoin | ||

− | === | + | === Hexadecimal could be done without new fonts as characters === |

− | The tonal notation requires extra fonts. Within the programming community there is a widely accepted convention for hexadecimal notation: use A-F for the higher order digits. Thus, one counts 0,1,2,3, ... , 9,A,B,C,D,E,F,10,11 .... There are even two conventions, (which are lacking in tonal notation) for distinguishing a base-16 number from a decimal. The C convention prefixes 0x and the Motorola convention suffixes h. So, the number san, 256 (decimal) would be written 0x100 or 100h. In tonal notation, it would only be written 100, and thus potentially confused with decimal 100 which is 0x64. | + | The tonal notation requires extra fonts. Within the programming community there is a widely accepted convention for hexadecimal notation: use A-F for the higher order digits. Thus, one counts 0,1,2,3, ... , 9,A,B,C,D,E,F,10,11 .... There are even two conventions, (which are lacking in tonal notation) for distinguishing a base-16 number from a decimal. The C convention prefixes 0x and the Motorola convention suffixes h. So, the number san, 256 (decimal) would be written 0x100 or 100h. In tonal notation, it would only be written 100, and thus potentially confused with decimal 100 which is 0x64, though this confusion is less of a problem for Bitcoin since the context is always explicit (SI/BTC vs Tonal/TBC units). |

− | Thus | + | Thus hexadecimal notation accomplishes most of the same goals as tonal notation, at least for Bitcoin, with no requirement for changing fonts, thus is more suited to wider usage. Further the prefix and suffix conventions lead to less ambiguity within the tonal community. |

+ | |||

+ | However, the goal of Tonal Bitcoin is to bring Bitcoin to Tonal, not to redefine Tonal or advocate change to the number system itself, so this is out of scope. |

## Revision as of 06:47, 19 September 2012

Tonal Bitcoin is a representation of the Bitcoin network aimed toward providing a use-case for adoption of Bitcoin to people who prefer the Tonal number system. This is an alternative to the decimal and metric system, which improves usability by allowing for infinite binary division (note that Bitcoin protocol support is still finite). For more information on the Tonal system in general, please see the book.

Please note, that all numbers of TBC and its divisions/multipliers are written in Tonal, not decimal. This means that instead of counting 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- you count: 0, 1, 2, 3, 4, 5, 6, 7, 8, , 9, , , , , , 10. Some higher-value digits may require installing a font.

Abbreviation | Pronunciation | Tonal (TBC) | Decimal (BTC) |
---|---|---|---|

Tam-Bitcoin | 1 0000 0000 | 2 814 749.767 106 56 | |

ᵇTBC | Bong-Bitcoin | 1 0000 | 42.949 672 96 |

ᵐTBC | Mill-Bitcoin | 1000 | 2.684 354 56 |

ˢTBC | San-Bitcoin | 100 | 0.167 772 16 |

ᵗTBC | Ton-Bitcoin | 10 | 0.010 485 76 |

TBC | Bitcoin* | 1 | 0.000 655 36 |

TBCᵗ | Bitcoin-ton | 0.1 | 0.000 040 96 |

TBCˢ | Bitcoin-san | 0.01 | 0.000 002 56 |

TBCᵐ | Bitcoin-mill | 0.001 | 0.000 000 16 |

TBCᵇ | Bitcoin-bong | 0.0001 | 0.000 000 01 |

* Tonal Bitcoin and Decimal Bitcoin can be differentiated by the pronunciation of the numbers. "One bitcoin", "two bitcoin", etc is decimal, but "an bitcoin", "de bitcoin" is tonal.

The total number of Tonal Bitcoins ever (analogous to the 21mil BTC in decimal representation) is just over 7.75059 tam-bitcoin.

## Contents

## Compatible Clients

While all Bitcoin clients will correctly approximate values in decimal bitcoin, actual Tonal compatibility is sparse.

- Spesmilo, despite its name, can be configured to display TBC

## Guessing TBC or BTC

Given variable 'value' in base units (uBTCents/TBCᵇ), one can guess whether it is properly Decimal Bitcoin or Tonal Bitcoin with the following pseudo-code:

if ( ! ( this % 0x10000 ) ) Choose Tonal Bitcoin if ( ! ( this % 1000000 ) ) Choose Decimal Bitcoin if ( ! ( this % 0x100 ) ) Choose Tonal Bitcoin

### Python

import math def formatBTC(n, addSign = False): s = "%0.2f BTC" % (math.ceil(n * 100) / 100.,) if addSign and n >= 0: s = "+" + s return s def Bitcoin2BTC(n): return n / 100000000. toTonalDict = dict(((57, u'\ue9d9'), (65, u'\ue9da'), (66, u'\ue9db'), (67, u'\ue9dc'), (68, u'\ue9dd'), (69, u'\ue9de'), (70, u'\ue9df'), (97, u'\ue9da'), (98, u'\ue9db'), (99, u'\ue9dc'), (100, u'\ue9dd'), (101, u'\ue9de'), (102, u'\ue9df'))) def formatTBC(n, addSign = False): s = "%x" % n n %= 1 if n: s += '.' while n: n *= 16 s += "%x" % n n %= 1 s = unicode(s).translate(toTonalDict) s += " TBC" if addSign and n >= 0: s = "+" + s return s def Bitcoin2TBC(n): return n / 65536. def formatBitcoin(n, addSign = False): if not n % 0x10000: return formatTBC(Bitcoin2TBC(n), addSign); if not n % 1000000: return formatBTC(Bitcoin2BTC(n), addSign); if not n % 0x100: return formatTBC(Bitcoin2TBC(n), addSign); s = "%d uBTCents" % (n,); if addSign and n > 0: s = "+" + s; return s;

## Criticism

- Davout has to google this page each time someone mentions an amount in tonal bitcoin

### Hexadecimal could be done without new fonts as characters

The tonal notation requires extra fonts. Within the programming community there is a widely accepted convention for hexadecimal notation: use A-F for the higher order digits. Thus, one counts 0,1,2,3, ... , 9,A,B,C,D,E,F,10,11 .... There are even two conventions, (which are lacking in tonal notation) for distinguishing a base-16 number from a decimal. The C convention prefixes 0x and the Motorola convention suffixes h. So, the number san, 256 (decimal) would be written 0x100 or 100h. In tonal notation, it would only be written 100, and thus potentially confused with decimal 100 which is 0x64, though this confusion is less of a problem for Bitcoin since the context is always explicit (SI/BTC vs Tonal/TBC units).

Thus hexadecimal notation accomplishes most of the same goals as tonal notation, at least for Bitcoin, with no requirement for changing fonts, thus is more suited to wider usage. Further the prefix and suffix conventions lead to less ambiguity within the tonal community.

However, the goal of Tonal Bitcoin is to bring Bitcoin to Tonal, not to redefine Tonal or advocate change to the number system itself, so this is out of scope.