{"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":84,"pdf_page":100,"physical_index":100,"physical_index_base":0,"printed_page_status":"recognized","page_sha256":"2d08e4156bbe77d833db211d971fc47adc92477b39fee723ef32358e8340f349"},"chapter":"编码隐匿在计算机软硬件背后的语言","content":"$$\n\\begin{array}{c} \\begin{array} { r l } { \\mathrm { d } \\hat { \\mathbf { u } } \\oplus } & { \\stackrel { \\mathrm { d e f } } { = } \\frac { \\boldsymbol { u } } { \\mathrm { d } z } \\le \\boldsymbol { g } \\le \\boldsymbol { g } } \\\\ { \\mathrm { u b l i d } } & { \\stackrel { \\mathrm { R e l } } { = } \\left\\{ \\begin{array} { l l } { \\hat { \\mathbf { u } } } & { \\hat { \\mathbf { u } } } \\\\ { \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { x } } } \\\\ { \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { u } } } \\end{array} \\right. } \\\\ { \\mathrm { c o n d ~ i n d a t i } } \\\\ { \\mathrm { d e t ~ t h e t i n t } } \\\\ { \\mathrm { d e t ~ t h e t i n t } } \\\\ { \\mathrm { c o s e ~ t i m i t i n g } } \\\\ { \\mathrm { d e t ~ t h e t i n t } } \\\\ { \\mathrm { d e t ~ t h e t i n t } } \\\\ { \\mathrm { d e t ~ t h e t i n t } } \\end{array} \\} , \\quad  & { \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { v } } \\oplus \\hat { \\mathbf { u } } } \\\\ { \\mathrm { d } \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { v } } \\oplus \\hat { \\mathbf { u } } } \\\\ { \\mathrm { d } \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { v } } \\oplus \\hat { \\mathbf { u } } } \\\\ { \\mathrm { d } \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { v } } \\oplus \\hat { \\mathbf { u } } } \\\\ { \\mathrm { d } \\hat { \\mathbf { u } } \\oplus \\hat { \\mathbf { v } } \\oplus \\hat { \\mathbf { u } } } \\end{array}\n$$\n\n中间护线后面仍然是6组比特串，每组中含有7个比特位。之后是最右边的护线，最右边的护线通常都为101。最右边的护线可以实现UPC的反向扫描（也就是从右到左扫描)，这一点我们将在后面解释。\n\n因此，整个UPC对12个数字进行了编码。UPC的左边含有6个编码数字，每个数字占有7个比特位。你可以利用如下的表格来解码。\n\n左边的编码\n\n$$\n\\begin{array} { r l r l } & { 0 0 1 1 0 1 = 0 } & & { 0 1 1 0 0 0 1 = 5 } \\\\ & { 0 0 1 1 0 0 1 = 1 } & & { 0 1 0 1 1 1 = 6 } \\\\ & { 0 0 1 0 0 1 1 = 2 } & & { 0 1 1 0 1 1 = 7 } \\\\ & { 0 1 1 1 1 0 1 = 3 } & & { 0 1 1 0 1 1 1 = 8 } \\\\ & { 0 1 0 0 0 1 1 = 4 } & & { 0 0 0 1 0 1 1 = 9 } \\end{array}\n$$\n\n注意，这里每个7位编码都是以0开头，以1结尾的。如果扫描仪遇到了一个位于左边的7位编码，这个编码是以1开头以0结尾的，那么它就知道自已没有将UPC正确地读入或者条形码被篡改了。另外我们还注意到每组编码都仅有两组连续为1的比特位，这就暗示每个数字对应着UPC码中的两个垂直条纹。\n\n你也会发现，上表中每组编码都含有奇数个1。这是另一种检查错误和一致性的方法，称为奇偶校验。如果一组比特位中含有偶数个1，它就称为偶校验；如果含有奇数个1，那么它就称为奇校验。这样看来，所有这些编码都拥有奇校验。\n\n编码隐匿在计算机软硬件背后的语言\n\n84","previous_page":83,"next_page":85}