我正在为一年级的学生教授“编程入门”课程,并希望找到一些有趣的例子,在这些例子中,由设计选择的数据类型大小导致了某些已知的限制或重要的值。
下面是一些示例:
您知道其他一些有趣的例子吗?数据类型(特别是二进制长度)的选择如何影响现代IT世界。
经过一些讨论后,
我不会教你如何克服局限。我只想让他们知道,1字节可以保存来自-127..0..+127 o.255的值,2字节可以包含范围0..65535等,通过验证他们从其他来源知道的例子,比如上面提到的base64编码等等。我们只是在学习基本的数据类型,我正在试图找到这些类型有多大的一个很好的参考。
发布于 2011-11-19 12:50:41
IPv4是一个很好的例子,在这个例子中,有限的规范大小导致了一个非常昂贵的问题。43亿个地址已经不够了。现在,世界各地的互联网服务提供商都在用128位地址空间分散地推出IPv6,这个地址空间转换成你身体中每一个原子的地址,或者类似的东西。
发布于 2011-11-19 15:55:15
2000年的问题也是相似的,只不过人们用十进制数代替二进制数,只对最后两个数字进行编码。如果向几乎没有二进制操作经验的人解释,这可能是一个有用的例子。
FAT32 12/FAT32 16/FAT32 32适应于越大越大的贮藏。
TeX在表示维度时(来自TeXBook)具有一些有趣的属性:
TEX在内部将所有维度表示为称为sp的小单位的整数倍数。由于可见光的波长约为100 sp,一些sp的四舍五入误差对眼睛没有影响。... TEX不会处理绝对值为2^30 sp或以上的维度。换句话说,最大法律维度略小于16384 pt。这是一个大约18.892英尺(5.7583米)的距离,所以它不会束缚你的风格。
(pt是一个大约等于1/72英寸的印刷单位)
发布于 2011-11-19 17:20:20
Microsoft尝试绘制超过32K项。一定有一个签名的16位字段在某处。(尽管出于某种原因,他们还是把限制降到了32000 )。
https://softwareengineering.stackexchange.com/questions/120683
复制