{"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":373,"pdf_page":389,"physical_index":389,"physical_index_base":0,"printed_page_status":"recognized","page_sha256":"21866f29144cb20ddc9132ed0465fbae933a994c869577dadf6d93ff07121496"},"chapter":"编码隐匿在计算机软硬件背后的语言","content":"在二进制的科学计数法中，规范化式的有效数应该大于或等于1且小于10（即十进制的2)。因此，在二进制的科学计数法中，下面这个数字：\n\n$$\n1 0 1 . 1 1 0 1\n$$\n\n其规范化式应该是：\n\n$$\n1 . 0 1 1 1 0 1 \\times 2 ^ { 2 }\n$$\n\n这个规则暗示了这样一个有趣的现象：在规范化二进制浮点数中，小数点的左边通常只有一个1，除此之外没有其他数字。\n\n当代大部分计算机和计算机程序在处理浮点数时所遵循的标准是由IEEE(Institute ofElectrical and Electronics Engineers，美国电气和电子工程师协会)于1985年制定的，ANSI(American National Standards Institute，美国国家标准局)也认可该标准。ANSI/IEEE Std754-1985 称作 IEEE 二进制浮点数算术运算标准（IEEE Standard for Binary Floating-PointArithmetic）——它只有18页——相对于其他标准来说是非常简短了，但却奠定了以简便方式编码二进制浮点数的基石。\n\nIEEE浮点数标准定义了两种基本的格式：以4个字节表示的单精度格式和以8个字节表示的双精度格式。\n\n让我们首先来了解一下单精度格式。它的4个字节可以分为三个部分：1位的符号位(0代表正数，1代表负数)，8位用做指数，最后的23位用做有效数。下表给出了单精度格式的三部分的划分方式，其中有效数的最低位在最右边。\n\n$$\n\\boxed { \\begin{array} { c c } { s = 1 \\textcircled { 1 } \\acute { 2 } \\acute { 1 } \\acute { 9 } \\acute { 5 } \\boxed { \\begin{array} { c c } { e = 8 \\left. \\acute { 1 } \\acute { 2 } \\acute { 1 } \\acute { 9 } \\acute { 3 } \\acute { 5 } \\acute { 5 } \\right. } \\\\ { \\left. \\acute { 1 } \\acute { 3 } \\acute { 2 } \\acute { 1 } \\acute { 5 } \\acute { 3 } \\acute { 5 } \\right. } \\end{array} } } \\end{array} } \\left| \\begin{array} { c c } { e = 8 \\left. \\acute { 1 } \\acute { 2 } \\acute { 1 } \\acute { 5 } \\acute { 2 } \\acute { 5 } \\acute { 5 } \\acute { 5 } \\acute { 5 } \\right. } \\\\ { e = 2 3 \\textcircled { 1 } \\acute { 2 } \\acute { 7 } \\acute { 1 } \\acute { 3 } \\acute { 5 } \\acute { 5 } \\acute { 3 } \\acute { 5 } \\acute { 5 } \\right. } \\end{array} \n$$\n\n三部分共32位，也就是4个字节。我们刚才提到过，对于二进制科学计数法的规范化式，其有效数的小数点左边有且仅有一个1，因此在IEEE浮点数标准中，这一位没有分配存储空间。在该标准中，仅存储有效数的23位小数部分，尽管存储的只有23位，但仍然称其精度为24位。我们将在下面的内容里体会24位精度的含义。\n\n8位指数部分的取值范围是0\\~255，称为偏移（biased）指数，它的意思是：对于有符号指数，为了确定其实际所代表的值必须从指数中减去一个值—称做偏移量（bias)。对于单精度浮点数，其偏移量为127。\n\n23 定点数和浮点数\n\n373","previous_page":372,"next_page":374}