{"resolved":true,"match_type":"uuid","source_type":"original_book","book_id":"38270854-596f-4a26-8183-db8c968c6020","title":"编码 隐匿在计算机软硬件背后的语言","author":null,"edition":null,"publisher":null,"year":null,"isbn":"9787121181184","requested_by":"printed_page","book":{"source_type":"original_book","book_id":"38270854-596f-4a26-8183-db8c968c6020","id":"38270854-596f-4a26-8183-db8c968c6020","uuid":"38270854-596f-4a26-8183-db8c968c6020","title":"编码 隐匿在计算机软硬件背后的语言","normalized_title":"编码隐匿在计算机软硬件背后的语言","author":null,"edition":null,"publisher":null,"year":null,"isbn":"9787121181184","isbns":["9787121181184","0123456789","6044921875","3039331000","0000000000","0000000000000"],"parsed":true,"ai_readable":true,"document_type":"book","page_count":438,"navigation_url":"https://workshop.closeclaw.top/ai/book/38270854-596f-4a26-8183-db8c968c6020","title_url":"https://workshop.closeclaw.top/ai/title/%E7%BC%96%E7%A0%81%20%E9%9A%90%E5%8C%BF%E5%9C%A8%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%BD%AF%E7%A1%AC%E4%BB%B6%E8%83%8C%E5%90%8E%E7%9A%84%E8%AF%AD%E8%A8%80","fixed_page_url_template":"https://workshop.closeclaw.top/ai/book/38270854-596f-4a26-8183-db8c968c6020/page/{printed_page}","path_api_url_template":"https://workshop.closeclaw.top/api/ai/book/38270854-596f-4a26-8183-db8c968c6020/page/{printed_page}","read_url":"https://workshop.closeclaw.top/api/ai/read/38270854-596f-4a26-8183-db8c968c6020","page_url":"https://workshop.closeclaw.top/api/ai/books/38270854-596f-4a26-8183-db8c968c6020/page","search_url":"https://workshop.closeclaw.top/api/ai/books/38270854-596f-4a26-8183-db8c968c6020/search"},"page":{"printed_page":156,"pdf_page":172,"physical_index":172,"physical_index_base":0,"printed_page_status":"recognized","page_sha256":"a452698aa9367d1f832734088728aa104a2c2199a38672f94673e8a62006d76b"},"chapter":"编码隐匿在计算机软硬件背后的语言","content":"CO输出为1。这表示减法的最后一步要减去100000000。也就是说减数要大于被减数，结果为负。上面所示器件现在还不能表示负数。因此，上溢/下溢指示灯仅在加法器的CO输出为0时才会亮起。\n\n你应该会庆幸自己问了这个问题：“减法该如何实现呢？”\n\n本章一直在谈论负数，但是并没有提到负数在二进制中是如何表示的。你可能设想二进制会同十进制一样应用传统的负数符号。例如，-77在二进制中为-1001101。这样做当然可以，但是应用二进制数的目的恰恰就在于只希望用0和1来表示所有的东西，当然也包括负号。\n\n当然，你可以简单地用一个二进制位来表示负号，当这一位为1的时候就表示负数，为0则表示正数，尽管这样也是可行的，但还远远不够。还有另一种方法可以解决负数的表示间题，而且它还可以很轻松地让负数和正数相加。这种方法的缺点是必须提前算一下可能遇到的所有数字的位数。\n\n让我们来想一想。通常用来表示正数和负数的方法，其好处就在于能表示所有的正数、负数。我们将0想象为这个无限延伸的序列的中点。这个序列中正数沿着一个方向延伸，而负数则按照另一个方向延伸：\n\n…-1000000, -999999…-3, -2, -1, 0, 1, 2, 3…999999, 1000000…\n\n但是，如果我们并不需要无限大或无限小的数，而且在开始的时候我们就可以预知所使用的数字的范围，那情况就有所不同了。\n\n以支票账户为例，这里人们通常会遇到负数。假设我的账户余额不超过500美元，并且银行给了我们500美元的无息预支额度，意思就是账户余额数值应该是一个在499美元到-500美元之间的数。假设我们不会一次取出500美元，我们也不会支出多于500美元的金额，这里我们用到的只是美元，不涉及美分。\n\n这些假设表明账户能处理的额度是介于-500到499之间，总共1000个数。这个约束说明只用三位十进制数，且不用负号就可以表示所有需要的数字。我们并不需要用到从500到999之间的正数，因为我们所需要的数的最大值为499。因此从500到999的三位数可以用来表示负数。具体情况如下：\n\n编码—隐匿在计算机软硬件背后的语言\n\n156","previous_page":155,"next_page":157}