CN1766830B - 基于处理器字长的数的二进制表示 - Google Patents

基于处理器字长的数的二进制表示 Download PDF

Info

Publication number
CN1766830B
CN1766830B CN200510118859.3A CN200510118859A CN1766830B CN 1766830 B CN1766830 B CN 1766830B CN 200510118859 A CN200510118859 A CN 200510118859A CN 1766830 B CN1766830 B CN 1766830B
Authority
CN
China
Prior art keywords
section
decimal
size
word
binary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200510118859.3A
Other languages
English (en)
Other versions
CN1766830A (zh
Inventor
C·德布雷比斯森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN1766830A publication Critical patent/CN1766830A/zh
Application granted granted Critical
Publication of CN1766830B publication Critical patent/CN1766830B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • H03M7/12Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word having two radices, e.g. binary-coded-decimal code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

描述一种根据处理器字长将数转换成二进制表示的方法。按照本方法,将数的预定大小的段转换成二进制表示,其中预定大小的段基于处理器字长。还描述一种将二进制形式表示的并且包括不止一个段的数转换成十进制表示的方法,其中段大小根据处理器字长来确定。将不止一个二进制段中的一个段转换成十进制形式所产生的第一个十进制段与将不止一个二进制段中的另一个段转换成十进制形式所产生的第二个十进制段组合。

Description

基于处理器字长的数的二进制表示
技术领域
本发明涉及基于处理器字长以二进制形式表示数。
背景技术
处理器、例如微处理器、中央处理单元(CPU)等控制许多设备、例如计算器、计算机系统、蜂窝电话等的运行。处理器在许多方面是不同的,例如指令集、字长和时钟速度等。处理器字长规定了在处理器存储单元、即数据寄存器中处理器能同时存储的数据的位数。例如,用于个人计算机的早期处理器具有8位字长,即,处理器每次能存储8位数据。同样地,近来的16、32和64位处理器每次能分别存储16、32和64位数据。
处理器以二进制形式对数据进行操作,即,根据2的幂排列0和1来确定数。为了处理器对数进行操作,处理器将数转换成二进制表示。将十进制数编码成二进制表示是本领域公知的。例如,可以分别用二进制值0101和11101011来表示十进制数5和235。然而,根据处理器将数从一种形式转换到另一种形式所需的操作,将十进制数编码成二进制表示需要一定的处理时间。因此,应用替换编码技术使十进制到二进制编码和解码所需的处理量最小。
此外,数值可能增大到超过单个处理器字的存储能力,例如数256需要9个二进制位来表示,并使用8位处理器的两个字来存储并在其上进行操作。
这种编码的一种基本替换是二进制编码的十进制(BCD),其中使用4个二进制位编码十进制数的每一位。关于前面的例子,十进制数5和235被分别表示成二进制值0101和0010 0011 0101。这样,不是如上所述需要3个和8个二进制位,BCD方法需要3个和10个二进制位来表示同样的两个数。使用BCD方法,如表1所描述的,每一位由相应的4个二进制位来表示:
表1
设法用给定的二进制位数编码更多的十进制位以提高存储效率的其他编码方法,例如将3个十进制位编码成相应的10个二进制位的Chen-Ho算法达到了99.66%的存储效率。通过使用复杂的编码算法来提高存储效率是以额外复杂性为代价的,例如在处理成本方面,即额外的处理时间和/或专用硬件。
发明内容
本发明提供一种基于处理器字长以二进制形式表示数的方法。
描述包括将数转换成二进制表示的方法方面。按照本方法,数的预定大小的段被转换成二进制表示,其中预定大小的段是基于处理器字长。
另外的方法方面包括将二进制形式表示的并且由不止一个段组成的数转换成十进制表示,其中段大小根据处理器字长来确定。将不止一个二进制段中的一个段转换成十进制形式所产生的第一个十进制段与将不止一个二进制段中的另一个段转换成十进制形式所产生的第二个十进制段组合。
另外的方法方面包括用具有预定位数的预定字长的处理器将具有若干位的数转换成二进制表示。确定预定字长的一个字中能存储的最大位数。将确定的最大可存储位数的数转换成第一个字中的二进制表示。
用于根据处理器字长以二进制形式表示数的计算机可读介质包括以二进制形式表示数的不止一位的不止一个段,其中段大小根据处理器字长来确定。
通过下面的详细描述,对本领域的技术人员来说,本发明的其他优点将变得显而易见,其中只是通过举例说明实现本发明所设想的最佳方式给出和描述了本发明的优选实施例。正如所认识到的,本发明能够采用其他和不同的实施例,在各种显而易见的方面可以修改其若干细节,所有这些都不脱离本发明。
附图说明
本发明通过举例而不是通过限定来说明,在附图的各图中,其中具有相同参考标号的元件表示相同的元件,其中:
图1是按照本发明的实施例的高级控制流。
具体实施方式
与上述的方法相比较,本发明的机制根据处理器字长以二进制形式表示数。
类似于字母表,其中用设定范围的可能的符号来区分数和组合以表示许多不同的字,不同的记数制包括用于表示不同值的一定范围的可能的各个数字。例如,在十进制记数制中,数字范围是0-9。任何十进制数用数字0-9中1个单独数字或一个或多个单独数字的组合根据数字的位置结合10的单位来表示。即,数字256表示:2*102+5*101+6*100。类似地,在十六进制记数制中数字的范围是0-F,对应于值0-15,在八进制记数制中数字的范围是0-7等等。在备选实施例中,可以使用不同的记数制;然而,为简明起见,下面只描述十进制记数制。
按照本发明的一个实施例通过确定给定的处理器字长所能存储的最大位数,其中每位必须能取数字范围中的任一数字,并将数分段成大小等于最大位数的几部分,将数转换成二进制表示。在一个实施例中,被转换的数是十进制数,然而,备选实施例可以使用下面描述的类似方法转换不同的记数制的数。为了简明起见,这里使用十进制数。
最大十进制数的每个数字位置必须能取记数制中数的范围的最大值。即,对于8位字长,能存储的最大十进制数是255,这样字长中可存储的可能位数是3,然而,第一位(首位)值被限制在0-2的范围内,以便保持在该字长内。第二位和第三位的值没有这样限制,可以取十进制数字范围内的任意值,即值0-9中的任何值可以放置在第二位和第三位(第一位的右边)而不会超出二进制表示的字长。
按照一个实施例,为了根据字长将十进制数转换成二进制数,根据处理器字长确定段大小。图1描述了按照本发明的一个实施例的处理器执行进程的控制流。已知特定的处理器字长,按照图1的控制流执行指令的处理器在步骤100确定用给定字长以二进制表示所能存储的最大十进制数,例如对于8位处理器,能存储的最大数是255。控制流继续进行到步骤102,其中确定位长等于能存储的最大十进制数的位数的最大十进制数,即最大的n位十进制数。例如,999是最大的三位十进制数。
控制流继续进行到步骤104,处理器将最大n位十进制数和能存储的最大数相比较。在步骤106,如果最大n位十进制数大于能存储的最大数,那么控制流进行到步骤108,用来划分十进制数的段大小被设置成比能存储的最大十进制数的位数少1,即n-1。如果最大n位十进制数小于或等于能存储的最大数,那么控制流进行到步骤110,用来划分十进制数的段大小被设置成能存储的最大十进制数的位数,即n。对于上面的例子,数999比数255大,段大小被设置成2,即n-1,3-1=2。也就是说,每个十进制数被划分为每段不超过两位的一个或多个段。
在步骤108或110中确定段大小后,控制流进行到步骤112,处理器根据上面确定的段大小、即以给定处理器字长存储的位数,将数、例如要以二进制形式存储的十进制数划分成若干段。
段大小决定了在每个给定的处理器字长中要以二进制形式表示的位数。根据特定的十进制数的位数,可能需要多个段来表示整个十进制数。要存储的数的位数决定了所需的段数,例如,要存储的数的位数除以段大小的四舍五入结果。在前述的例子中,要存储的数的位数是3,段大小是2,所以存储这个数所需的段数目是2,即3/2=1.5,四舍五入为2。
根据前面的例子,8位处理器字长需要将十进制数划分为两位的段。例如,用两段来存储数763:第一段以二进制形式存储十进制数7,第二段以二进制形式存储十进制数63。表2描述了数763的十进制和分段二进制表示。
Figure 2005101188593A00800021
表2
在另一个例子中,数635664是6位长,用3段来存储:第一段以二进制形式存储十进制数63,第二段以二进制形式存储十进制数56,第三段以二进制形式存储十进制数64。表3描述了数635664的十进制和分段二进制表示。
表3
假定已知8位的处理器字长,能存储的最大十进制数是255,即以8位的排列用0和1的组合可存储从0到255的256个值的范围。
现在描述一个简明的例子。假定8位的处理器字长,用8位以二进制形式能存储的最大数是255,即二进制形式的1111 1111。在给定的8位字中可能存储的数的范围是从0到255。然而,当每一位必须能够是可能的数的整个范围中所有的数时,即从0到9,那么8位能存储的最大位数是2,即数的范围是从0到99。
用另外的方式表述,所有两位十进制数,包括一位的十进制数,可以用8位字长来存储;然而,不是所有的三位十进制数都能存储在同样的8位字长中。例如,首位大于二(“2”)的任何三位十进制数不能以二进制形式存储在8位字中。这样,能存储在一个8位字长中的最大位数是2。
假定16位的处理器字长,现在描述第二个简明的例子。16位能以二进制形式存储的最大数是65535,即二进制形式的1111 1111 11111111。用给定的16位字可能存储的数的范围是从0到65535。然而,当每一位必须能够是可能的数的整个范围的所有数时,16位所能存储的最大位数是4,即数的范围是从0到9999。因为99999大于65535,所以可用的最大位数是n-1,4。
用另一种方式表述,所有的4位十进制数,包括少于4位的十进制数,可以存储在16位字长中;然而,不是所有大于4位的十进制数都能存储在同样的16位字长中。这样,16位字长能存储的最大位数是4。
假定32位的处理器字长,现来描述第三个简明的例子。32位能以二进制形式存储的最大数是4294967295,即二进制形式的11111111 1111 1111 1111 1111 1111 1111。用给定的32位字可能存储的数的范围是从0到4294967295。然而,当每一位都必须能够是可能的数的整个范围的所有数时,32位所能存储的最大位数是9,即数的范围是从0到999999999。
用另一种方式表述,所有的9位十进制数,包括少于9位的十进制数,可以存储在32位字长中;然而,不是所有大于9位的十进制数都能存储在同样的32位字长中。这样,32位字长能存储的最大位数是9。
按照上述方法存储的数能够用同样的数学运算来进行运算,即加、减、乘、除等,就像用直接的二进制变换所存储的数一样。如果用不止一个段来存储一个数,那么可能要记住额外进位并将其应用到另一个基于段的运算。由于不需要额外的变换操作,例如逐位的值移位等,因此数学运算能够比二进制编码的十进制方法执行得更快。
对于较大处理器字长,上述方法的存储效率比使用二进制编码的十进制(BCD)方法高。即,通过比较给定存储方法所使用的最大位数和用于二进制表示的最大位数来确定存储效率。例如,使用16位字长,可存储数的最大数量是10000,即范围从0到9999。存储效率是log210000/16位=83.05%。对于较大的处理器字长,存储效率与BCD方法比较有所改进。例如,使用32位字长,能存储的数的最大数量是1000000000,即范围从0到999999999。存储效率是log21000000000/32位=93.43%。然而,BCD方法相应的存储效率是log2100000000/32位=83.05%。类似地,对于64位字长,能存储的数的最大数量是10000000000000000000,即范围从0到9999999999999999999。存储效率是log210000000000000000000/64位=98.62%。然而,BCD方法的相应的存储效率是log210000000000000000/64位=83.05%。
对于大的数,用上述方法将十进制数转换成二进制数所需的时间小于将单个大数从十进制表示转换成二进制表示所需的时间。因为这个数是分段转换的,单个大数不需要使用多步全部在一次被转换。此外,因为由一段所表示的最大数始终在处理器字长的范围内,所以处理器一步就能将段数转换成二进制表示。另外,对于比处理器字长大的数,需要包括将中间结果存储到寄存器的多步处理。
类似的原因适用于从二进制到十进制的转换。与存储成单个多字二进制值的十进制数的解码相比,将分段的二进制数解码为十进制数要快一些。关于解码多字二进制值,或者必须构建整个二进制数,然后将其转换成十进制数,需要多次加和乘运算;或者二进制数的每个字长段必须被解码,乘以2n,其中n基于字长中二进制位数,并加到任何先前解码的段上。相反,按照一个实施例,由于段只是与处理器字长一样大,通常在单操作中解码各个二进制段,并连接起来而构成十进制数。
此外,给定数的特定部分可能容易解码,例如,存储在32位处理器字长系统中的45位十进制数的最右边15位容易通过获得和解码2个段、即2个字的二进制数据值来恢复。这是因为采用32位字长,能存储的最大位数是9,即如上所述,每段能表示多达9位值的十进制数。
本领域的普通技术人员容易看出,按照本发明的实施例实现了上述许多优点。在阅读上述说明书后,普通技术人员将能够进行这里广泛公开的本发明的各种变化、等效物替代和各种其他方面。因此,这里所承认的保护要仅由所附权利要求及其等效物中包含的定义来限定。

Claims (8)

1.一种将数转换成二进制表示的方法,所述方法包括以下步骤:
将数分段成多个段,其中所述多个段中的每个都具有等于具有处理器字长的一个字中能存储的最大位数的一个或多个位的段大小,其中每位都能够表示记数制数范围中的所有数;
将数转换成分段二进制表示,其中所述数的多个段中的每段都被转换成该段的相对应的二进制表示。
2.如权利要求1所述的方法,其特征在于,还包括以下步骤:
如果具有给定位数的最大数小于或等于所述处理器字长中能存储的最大数,则将段大小设置成具有给定位数的最大数的位数。
3.如权利要求1所述的方法,其特征在于,还包括以下步骤:
如果具有给定位数的最大数大于所述处理器字长中能存储的最大数,则将段大小设置成比具有给定位数的最大数的位数少1。
4.如权利要求1所述的方法,其特征在于,所述二进制形式的数大于单个处理器字。
5.一种将二进制形式表示的并且包括不止一个段的数转换成十进制表示的方法,所述方法包括以下步骤:
将不止一个二进制段中的一个段转换成十进制形式所产生的第一个十进制段和将不止一个二进制段中的另一个段转换成十进制形式所产生的第二个十进制段组合,其中段大小是等于具有处理器字长的一个字中能存储的最大位数的一个或多个位的段大小,其中每位都能够表示记数制数范围中的所有数。
6.一种将具有一位或多位的数转换成二进制表示的方法,包括以下步骤:
确定具有字长的处理器的一个字中能存储的最大位数;以及
将所确定的能存储的最大位数的数转换成第一个字中的二进制表示,其中每位都能够表示记数制数范围中的所有数。
7.如权利要求6所述的方法,其特征在于,还包括以下步骤:
对于减去所有先前转换的位的数的所确定的能存储的最大位数重复所述转换步骤,得到附加字中的二进制表示。
8.一种用于根据处理器字长用二进制形式表示数的装置,包括:
用于将数分段成多个段的部件,其中所述多个段中的每个都具有等于具有处理器字长的一个字中能存储的最大位数的一个或多个位的段大小,其中每位都能够表示记数制数范围中的所有数;
用于将数转换成分段二进制表示的部件,其中所述数的多个段中的每段都被转换成该段的相对应的二进制表示。
CN200510118859.3A 2004-10-28 2005-10-27 基于处理器字长的数的二进制表示 Expired - Fee Related CN1766830B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/974,689 US7523150B2 (en) 2004-10-28 2004-10-28 Binary representation of number based on processor word size
US10/974689 2004-10-28

Publications (2)

Publication Number Publication Date
CN1766830A CN1766830A (zh) 2006-05-03
CN1766830B true CN1766830B (zh) 2014-09-24

Family

ID=35788176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200510118859.3A Expired - Fee Related CN1766830B (zh) 2004-10-28 2005-10-27 基于处理器字长的数的二进制表示

Country Status (4)

Country Link
US (1) US7523150B2 (zh)
EP (1) EP1653626A3 (zh)
CN (1) CN1766830B (zh)
AU (1) AU2005218001B2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644115B2 (en) * 2005-01-07 2010-01-05 Sas Institute Inc. System and methods for large-radix computer processing
US7797360B2 (en) * 2006-04-06 2010-09-14 Sap Ag Sortable floating point numbers
US8417761B2 (en) * 2008-12-08 2013-04-09 International Business Machines Corporation Direct decimal number tripling in binary coded adders
CN102411616B (zh) * 2011-10-28 2014-11-19 北京地拓科技发展有限公司 一种数据存储方法和系统及数据管理方法
CN105808558A (zh) * 2014-12-30 2016-07-27 中国铁道科学研究院电子计算技术研究所 索引表离散量存储方法及其在逆最远临检索中的应用
CN105429643B (zh) * 2015-08-28 2019-06-14 西安启微迭仪半导体科技有限公司 一种减小尺寸为非整数比的器件的匹配误差的编码方法
CN106779733A (zh) * 2016-11-22 2017-05-31 中食安电子商务服务有限公司 10位十进制编码转化为可检错二进制编码的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1231716A2 (en) * 2001-01-27 2002-08-14 International Business Machines Corporation Decimal to binary coder/decoder

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6166664A (en) * 1998-08-26 2000-12-26 Intel Corporation Efficient data structure for entropy encoding used in a DWT-based high performance image compression
US7330864B2 (en) * 2001-03-01 2008-02-12 Microsoft Corporation System and method for using native floating point microprocessor instructions to manipulate 16-bit floating point data representations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1231716A2 (en) * 2001-01-27 2002-08-14 International Business Machines Corporation Decimal to binary coder/decoder

Also Published As

Publication number Publication date
EP1653626A2 (en) 2006-05-03
AU2005218001A1 (en) 2006-05-18
US7523150B2 (en) 2009-04-21
AU2005218001B2 (en) 2011-02-17
CN1766830A (zh) 2006-05-03
US20060095487A1 (en) 2006-05-04
EP1653626A3 (en) 2006-05-10

Similar Documents

Publication Publication Date Title
CN1766830B (zh) 基于处理器字长的数的二进制表示
KR100950607B1 (ko) 허프만 코딩
US20160239265A1 (en) Bit remapping mechanism to enhance lossy compression in floating-point applications
US9998145B2 (en) Data processing method and device
JPH06222904A (ja) n配列ストリングにおける記号確率の適応計算
CN107592116A (zh) 一种数据压缩方法、装置及存储介质
JPH0834432B2 (ja) 符号化装置及び符号化方法
US5617089A (en) Huffman code decoding circuit
CN108391129A (zh) 数据编码方法及装置
CN112506880A (zh) 数据处理方法及相关设备
US9998149B2 (en) Constant hamming weight coding
KR20040044589A (ko) 다수결 논리를 이용한 rm 부호의 연판정 복호 방법 및그 장치
US9450607B1 (en) Encoding or decoding characters as word in corpus
US7777653B2 (en) Decoding variable-length code (VLC) bitstream information
US6778107B2 (en) Method and apparatus for huffman decoding technique
Ryabko et al. On asymptotically optimal methods of prediction and adaptive coding for Markov sources
US20130318093A1 (en) Short string compression
CN103428502A (zh) 一种解码方法及解码系统
US6298165B1 (en) Method for improving data encoding and decoding efficiency
Singh et al. A low-complexity, reduced-power Viterbi algorithm
US20220091820A1 (en) Storage medium and operation device
US7791509B2 (en) Preprocessing variable-length code (VLC) bitstream information
JP3191442B2 (ja) ビタビ復号用演算装置
JP2783221B2 (ja) 復号化方法
KR101734515B1 (ko) 데이터 부호화 및 복호화 방법과 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: QUALCOMM INC.

Free format text: FORMER OWNER: HEWLETT PACKARD CO.

Effective date: 20140226

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20140226

Address after: American California

Applicant after: Qualcomm Inc.

Address before: American Texas

Applicant before: Hewlett-Packard Development Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140924

Termination date: 20201027