就像标题说的那样,问题很简单。我在StackOverflow(和互联网上)上看到了一些关于咬食用例的问题,但我不明白为什么我们需要使用咬食。我的意思是,字节是计算中最小的内存单位,因此对其执行操作来操作其中的一半似乎并不有效。例如,在文章 on GeeksForGeeks上有关于以字节交换小块的方法。那么,如果需要像nibble这样的东西,为什么没有在任何非古代编程语言中定义为数据类型(如byte或int或任何其他类型)?
我知道比特、比特或字节的历史。也可以阅读维基百科的文章,并在谷歌上搜索很多东西,以找到我问题的答案,但我没能找到答案。也许这将标志着基于意见和封闭,但我只是想对这个问题进行一些讨论,我不知道其他好地方问同样的问题,所以请友好。
发布于 2021-09-27 14:46:56
“那些不了解历史的人注定要重蹈覆辙。”埃德蒙·伯克
在过去,当内存不足(20K被认为是很多)时,终端更像打字机(想想击键) --使用BCD (二进制编码十进制)。甚至维基百科在咬人上的文章也记录了BCD。
每咬一口都代表一个十进制数字。小数从0到9,一个字节可以表示两位小数.现在,当您的程序崩溃时,这些字节是在绿条上的代码转储中打印出来的,您可以查看十六进制转储部分,并将这些值直接读取为十进制数字,而无需在头脑中执行位到十进制的二进制转换。
这是否意味着所有的代码都是用BCD编写的?不,如果某些值有问题,只需添加一些行将值转换为BCD (想想调试语句),然后在转储中读取BDC,而不是执行所有转换。您可以尝试在BCD中完成所有的工作,但与许多类型一样,有时并不是所有的函数都存在,因此需要更改类型。和BCD一样,有时你不能用BCD做你可以用整数做的事情。讲得通?
从评论中添加问题
在现代编程世界中,现在还需要咬咬吗?如果是,为什么?
我不希望看到使用现代高级编程语言编译器创建的代码中使用小字节,但对于微控制器,我不会惊讶地看到使用的是小段代码。
基本上,如果一个小块不是硬编码作为处理器指令集的一部分,我就不会期望看到一个小块被使用。
https://stackoverflow.com/questions/69340060
复制相似问题