小数点的替代字符'。'

时间:2015-02-24 21:05:46

标签: syntax naming-conventions naming

我要求仅使用a-z,下划线,短划线和0-9对带符号的十进制数进行编码。不允许使用其他特殊字符。

十进制数通常以文本和下划线开头。数字前面的破折号表示减号,因此为负值。

假设:

tree_-0.125flower_21.875

潜在转型:

使用小写o

tree_-0.125 -> tree_-0o125

flower_21.875 -> flower_21o875

小数点后使用小写d

tree_-0.125 -> tree_-0d125

flower_21.875 -> flower_21d875

在float中使用小写f

tree_-0.125 -> tree_-0f125

flower_21.875 -> flower_21f875

使用小写_

tree_-0.125 -> tree_-0_125

flower_21.875 -> flower_21_875

人类可读性很重要,因为许多人会使用这种语法。鼓励对特定语法提出任何建议或投票。

1 个答案:

答案 0 :(得分:1)

好的,这就是:

  

要求仅使用a-z,下划线,短划线和0-9

  

人类可读性很重要,因为许多人会使用这种语法

绝对且显然是相互矛盾的。

不要让自己被迫做这样的事情。用例是什么?你打算用谁来强制使用这种语法?

我保证,只要你向野外介绍类似的东西,你就会看到人类的< - >语法转换工具,所以你也可以使用字节到az_ / 09-characters的任意映射。允许任何UTF-8字符。

所以我投票支持这个解决方案:

  1. a-z,_,/,0-9是38个字符,略多于32个字符,这将为您提供5个字符。真棒。取这些5位等效符号中的8个,你就会得到一个5Byte-Word。
  2. 将您要记录的文本转换为UTF-8,并为数值保存32位浮点数。存储您在内存中获得的字节序列,在数据之前添加一个16位整数长度字段,并在数据之后填充为5字节倍数。
  3. 根据1.的映射,构建转换器Bytes->符号。
  4. 不关心任意,不人道的监管。请注意,这不是20世纪60年代,内存便宜,人们更喜欢阅读实际文本,而不是解析器。