{"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":86,"pdf_page":102,"physical_index":102,"physical_index_base":0,"printed_page_status":"recognized","page_sha256":"b96f14ff84863ad8d31adc685cd1e6bec468007511961d2f76c72d6da3a7b1db"},"chapter":"编码隐匿在计算机软硬件背后的语言","content":"司可能是指一种完全不同的产品。\n\n与大家通常的想法相反，UPC不包含物品的价格信息。价格信息可以从商店使用的与该扫描仪相连的计算机中检索到。\n\n最后一个数字（在这里是7）称为模校验字符。这个字符可用来进行另外一种错误检验。为了了解它是如何工作的，我们将前11个数字（在这个例子中是05100001251）各用一个字母来代替：\n\nA BCDEF GHIJK\n\n然后，计算下式的值：\n\n$$\n3 \\times ( \\mathbf { A } + \\mathbf { C } + \\mathbf { E } + \\mathbf { G } + \\mathbf { I } + \\mathbf { K } \\mathbf { \\Omega } ) + ( \\mathbf { B } + \\mathbf { D } + \\mathbf { F } + \\mathbf { H } + \\mathbf { J } )\n$$\n\n从离这个值最近并且大于或等于它的一个10的整倍数中减去它，其结果称为模校验字符(modulo check character)。在 Campbell 鸡汁面的例子中，有：\n\n$$\n3 \\times ( 0 + 1 + 0 + 0 + 2 + 1 ) + ( 5 + 0 + 0 + 1 + 5 ) = 3 \\times 4 + 1 1 = 2 3\n$$\n\n紧挨23并大于或等于23的10的整倍数是30，因此：\n\n$$\n3 0 - 2 3 = 7\n$$\n\n这就是印在外包装上并以UPC形式编码的模校验字符，这是一种冗余措施。如果扫描仪没有扫描到与计算机计算结果相同的模校验字符，那么计算机就视这个UPC无效。\n\n通常情况下，要表示0\\~9的十进制数字只需要4个比特位就足够了。UPC中每个数字用了7个比特位。这样，UPC总共用了95个比特位来表示11个有效的十进制数。实际上，UPC中还有空白位置（相当于9个0比特)，它们位于左、右护线的两侧。这就意味着，整个UPC需要113个比特位来编码11个十进制数，平均每个十进制数所用的比特位超过了10个！\n\n如我们所看到的，有部分冗余对于检错来讲是必要的。这种商品编码如果能够被顾客用笔轻易地改动，那么这种产品编码措施也就没有任何意义了。\n\nUPC可以从两个方向读，这一点是非常方便的。如果扫描装置解码的第一个数是符合偶校验（即7位编码中有偶数个1）的，扫描仪就会知道，它正从右向左扫描UPC码。\n\n编码——隐匿在计算机软硬件背后的语言\n\n86","previous_page":85,"next_page":87}