存储于计算机内的各种二进制数,严格意义上应该称作二进制位串(或位序列),这些二进制位串可能是数,也可能是编码(比如ASC码、汉字内码等)或机器指令。
用简单的二进制位串表现内涵迥异的内容是我们不熟悉和容易迷惑的,但想想我们的手指就会感到释然:手指不仅可以表示数,也可以表示OK、WC、“你真棒”、“石头、剪子、布”、证券交易所、特警突击队以及划拳用的手势等。
面对一个孤立的二进制位串,我们是无法确定它究竟是数、是码还是指令的。比如一个目标程序,其内容显然是机器代码,但当对该程序进行传送或加密处理时,这些代码就成了被其他程序处理的数据。这和我们的手势又很类似:竖起食指和中指,可以是 2、“剪子”,也可以是“victory”表示顺利等。可见,一个二进制位串究竟是什么,这是由编程者对它的使用确定的。
初学的朋友往往会问怎样“区分”无符号数和带符号数,其实两者在形式上是没有区别的,区别就在你的心里:如果你将二进制的最高位视为符号位,就是带符号数;如果将其看作是一个有效数位而不是符号位,则为无符号数。
当 CPU 处理一个二进制数时,其实也弄不清楚这个数是有符号还是无符号数;由于引入了补码,使得加减计算的指令对有符号数和无符号数的处理是一样的,所以在进行加减运算时, CPU 将运算结果作为有符号数和无符号数对符号位的影响都“罗列”出来了,供编程者根据需要使用。
- [thedaydreamwang] 有空把单精度的表示方法给我们讲下谢谢了!!感觉百度写的很不详细!!好久不见了哈!! 07/08 03:03
- [游客] 恩。非常有道理。 顶。。 07/05 18:52
- [游客] 我终于知道下一步该学什么了。 06/22 15:26
- [stcn] 我刚学汇编不久,看了这让我对编程语言有了更深入的了解了!以后一定要多关注技术的更新和发展趋势! 04/14 22:40
- [游客] 地址译码逻辑是不是应该在CPU内部啊? 04/08 22:34
- [scuzg] SP的初值=堆栈容量=栈底的偏移量+2。 而ss决定栈段起点。 即堆栈的所有结构元素都是由S 03/01 10:05
- [dwtqin] 还是有点模糊, 不懂,为什么栈是64K,没有说明64K从哪里得知 02/26 17:26
- [thedaydreamwang] 我是在错误中寻找正确的答案,需要自已用脑子思考我相信这是很重要的事情对一个人 01/21 07:55
- [dq051524] 穿上马甲评论 好不 01/15 16:27
- [regex] 学习~~~ 01/15 15:52
- [suixin] 少了个你,呵呵 “看着你的回答真长见识” 12/01 09:31
- [suixin] 看着的回答真长见识 12/01 09:29
- [fangorc] 先弄个友情链接,老师这的好东西太多了,慢慢消化~ 08/07 22:03
- [zdpopup] 谢谢scuzg 的宝贵意见,我看了2次你的话 08/05 01:43
- [游客] 过来踩踩。哈哈!端他爸 08/03 11:28
我们的手指和二进制数(位串、位序列)