# Difference between revisions of "Tonal Bitcoin"

(→Criticism: No need for funny characters not represented in mainstream fonts if we use C hexadecimal numbers) |
(brief summary as requested) |
||

Line 1: | Line 1: | ||

+ | Tonal Bitcoin is a representation of the Bitcoin network aimed toward the minority of people who use the Tonal number system. | ||

+ | This is an alternative to decimal and the metric system, which improves usability drastically by allowing for infinite binary division. | ||

+ | For more information on the Tonal system in general, please see [http://www.lulu.com/product/file-download/tonal-system/10991091 the book]. | ||

+ | |||

Please note, that all numbers of TBC and its divisions/multipliers are written in [http://en.wikipedia.org/wiki/Tonal_System Tonal], not decimal. | Please note, that all numbers of TBC and its divisions/multipliers are written in [http://en.wikipedia.org/wiki/Tonal_System 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 [http://luke.dashjr.org/education/tonal/glyphs/fonts/ font]. | 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 [http://luke.dashjr.org/education/tonal/glyphs/fonts/ font]. | ||

Line 63: | Line 67: | ||

The total number of Tonal BitCoins ever (analogous to the 21mil BTC) is just over 7.75059 tam-bitcoin. | The total number of Tonal BitCoins ever (analogous to the 21mil BTC) is just over 7.75059 tam-bitcoin. | ||

− | |||

− | |||

== Compatible Clients == | == Compatible Clients == |

## Revision as of 21:22, 11 April 2011

Tonal Bitcoin is a representation of the Bitcoin network aimed toward the minority of people who use the Tonal number system. This is an alternative to decimal and the metric system, which improves usability drastically by allowing for infinite binary division. 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.76710656 | |

ᵇTBC | Bong-BitCoin | 1,0000 | 42.94967296 |

ᵐTBC | Mill-BitCoin | 1000 | 2.68435456 |

ˢTBC | San-Bitcoin | 100 | 0.16777216 |

ᵗTBC | Ton-BitCoin | 10 | 0.01048576 |

TBC | BitCoin* | 1 | 0.00065536 |

TBCᵗ | BitCoin-ton | 0.1 | 0.00004096 |

TBCˢ | BitCoin-san | 0.01 | 0.00000256 |

TBCᵐ | BitCoin-mill | 0.001 | 0.00000016 |

TBCᵇ | BitCoin-bong | 0.0001 | 0.00000001 |

* 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) 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

All irrational/emotional resistance to change, so far. (if you disagree, put a RATIONAL argument here)

### Can be done without funny 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) 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.

Thus programming notation accomplishes the same goals as tonal notation with no requirement for changing fonts, thus is more suited to wide usage. Further the prefix and suffix conventions lead to less ambiguity.