描述一种根据处理器字长将数转换成二进制表示的方法。按照本方法,将数的预定大小的段转换成二进制表示,其中预定大小的段基于处理器字长。还描述一种将二进制形式表示的并且包括不止一个段的数转换成十进制表示的方法,其中段大小根据处理器字长来确定。将不止一个二进制段中的一个段转换成十进制形式所产生的第一个十进制段与将不止一个二进制段中的另一个段转换成十进制形式所产生的第二个十进制段组合。
【技术实现步骤摘要】
本专利技术涉及基于处理器字长以二进制形式表示数。
技术介绍
处理器、例如微处理器、中央处理单元(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的十进制和分段二进制表示。 表2在另一个例子中,数635664是6位长,用3段来存储第一段以二进制形式存储十进制数63,第二段以二进制形式存储十进制数56,第三段以二进制形式存储十进制数64。表3描述了数635664的十进制和分段二进制表示。 表3假定已知8位的处理器字长,能存储的最大十进制数是255,即以8位的排列用0和1的本文档来自技高网...
【技术保护点】
一种将数转换成二进制表示的方法,所述方法包括以下步骤: 将数的预定大小的段转换成二进制表示,所述预定大小的段基于处理器字长。
【技术特征摘要】
US 2004-10-28 10/9746891.一种将数转换成二进制表示的方法,所述方法包括以下步骤将数的预定大小的段转换成二进制表示,所述预定大小的段基于处理器字长。2.如权利要求1所述的方法,其特征在于,所述预定大小的段是一位或多位,并且位数等于所述处理器字长的一个字中能存储的最大位数,其中每位能够是记数制数范围中的所有数。3.如权利要求1所述的方法,其特征在于,还包括以下步骤如果具有给定位数的最大数大于所述处理器字长中能存储的最大数,则将段大小设置成具有给定位数的最大数的位数。4.如权利要求1所述的方法,其特征在于,还包括以下步骤如果具有给定位数的最大数小于或等于所述处理器字长中能存储的最大数,则将段大小设置成比具有给定位数的最大数的位数少1。5.如权利要求1所述的方法,其特征在于,所述二进制形式的数大于单个处理器字。6.一种将二进制形式表示的并且包括不止一个段的数转换成...
【专利技术属性】
技术研发人员:C德布雷比斯森,
申请(专利权)人:惠普开发有限公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。