【码农不读书】关于罗马计数法,你大概只知道I、V和X吧!


1、相比于10进制,如果你觉得2进制、8进制和16进制很怪的话,你应该庆幸至少他们还是按位计数的。

 2、什么叫按位计数?也就是说每个位有明确的含义,满了就进位。比如十进制的19,从右向左第一位其实表示的是9个10º,第二位表示的是1个10¹,第一位如果加1就满了需要进位变成十进制的20;同样二进制的101(相当于十进制的5),从右向左第一位表示1个2º,第二位表示0个2¹,第三位表示1个2²,第一位如果加1就满了需要进位变成二进制的110(相当于十进制的6)。

 3、既然这么说,那也就意味着有的数字表示法是不按位计数的,这就是罗马计数法。1)先了解一下罗马计数法的表示符号,分别是I(1)、V(5)、X(10)、L(50)、C(100)、D(500)、M(1000);2)再了解一些特例,比如4和9的表示不是IIII和VIIII,而是使用减法也就是IV和IX;3)最后一个最重要也是最不方面的规则,就是在一个数字上面划一横线就表示这个数字乘以1000倍,这虽然解决了罗马数字表示大数字的问题,但确实不是一个方便的写法。 

4、记住以上3个规则,我们基本上就可以解决大部分的罗马计数了。比如我们表示134,945,584这个数字,因为远远超过1000,所以肯定要用1000的倍数这个表示方式,我们先拆解成:134*1000*1000+945*1000+584,然后我们换成罗马字符CXXXIV(134)、CMXLV(945)、DLXXXIV(584),最后加上1000的倍数即可,最终变成:。回头看一下这个数字,从右向左,每个位并没有明确的含义,当前位被什么符号占据就根据该符号或者它前后的几个符号合并计算值,简单粗暴,所以罗马计数法不是按位计数的。

 5、如今除了买表和苹果发布iPhone X系列手机外,很少能见到罗马数字。人们对罗马数字熟悉又陌生的感觉正好可以被某些复古或解密游戏作为场景之一。

 6、罗马计数法有很多小故事,感兴趣的可以参考百科。比如数字0在罗马计数法里是违背罗马教皇而偷偷加上去的。0用N表示,为什么是N呢?正如C(100)和M(1000)是Centum和Mille的首字母,N(0)是Nulla的首字母。Nulla是空的意思,这单词的长相好眼熟吧。 


来自阅读结城浩的《程序员的数学》



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值