from:

[1] Introduction to Computing System, from Bits and Gates to C and Beyond. Yale N. Patt and Sanjay J. Patel. McGraw-Hill Higher Education.(英)

[2] 计算系统基础_陈道蓄http://course.jingpinke.com/details?uuid=8a833999-2031c13b-0120-31c13bb1-012b

2.7 Other Representations

Four other representations of information that we will find useful in our work are the bit vector, the floating point data type, ASCII codes, and hexadecimal notation.

2.7.1 The Bit Vector

It is often useful to describe a complex system made up of several units, each of which is individually and independentlybusyoravailable. This system could be a manufacturing plant where each unit is a particular machine. Or the system could be a taxicab network where each unit is a particular taxicab. In both cases, it is important to identify which units are busy and which are available, so that work can be assigned as needed.

Say we have n such units. We can keep track of thesenunits with an n-bit binary pattern we call abit vector, where a bit is 1 if the unit is free and 0 if the unit is busy.

Example 2 . 11

Suppose we have eight machines that we want to monitor with respect to their availability.

We can keep track of them with an eight-bit BUSYNESS bit vector, where a bit is 1 if the unit is free and 0 if the unit is busy. The bits are labeled, from right to left, from 0 to 7.

The BUSYNESS bit vector 11000010 corresponds to the situation where only units 7, 6, and 1 are free, and therefore available for work assignment.

Suppose work is assigned to unit 7. We update our BUSYNESS bit vector by performing the logical AND, where our two sources are the current bit vector 11000010 and the bit mask 01111111. The purpose of the bit mask is to clear bit 7 of the BUSYNESS bit vector. The result is the bit vector 01000010.

Recall that we encountered the concept of bit mask in Example 2.7. Recall that a bit mask enables one to interact some bits of a binary pattern while ignoring the rest. In this case, the bit mask clears bit 7 and leaves unchanged (ignores) bits 6 through 0.

Suppose unit 5 finishes its task and becomes idle. We can update the BUSYNESS bit vector by performing the logical OR of it with the bit mask 00100000. The result is 01100010.

2.7.2 Floating Point Data Type

Most of the arithmetic we will do in this book uses integer values. For example, the LC-3 uses the 16-bit, 2's complement data type, which provides, in addition to one bit to identify positive or negative, 15 bits to represent the magnitude of the value. With 16 bits used in this way, we can express values between -32,768 and +32,767, that is, between -215 and +215 - 1. We say theprecision of our value is 15 bits, and the range is 215. As you learned in high school chemistry or physics, sometimes we need to express much larger numbers, but we do not require so many digits of precision. In fact, recall the value 6.023-1023, which you may have been required to memorize back then. The range required to express this value is far greater than the 215 available with 16-bit 2's complement integers. On the other hand, the 15 bits of precision available with 16-bit 2's complement integers is overkill. We need only enough bits to express four significant decimal digits (6023).

So we have a problem. We have more bits than we need for precision. But we don't have enough bits to represent the range.

The floating point data type is the solution to the problem. Instead of using all the bits (except the sign bit) to represent the precision of a value, the floating point data type allocates some of the bits to the range of values (i.e., how big or small) that can be expressed. The rest of the bits (except for the sign bit) are used for precision.

Most ISAs today specify more than one floating point data type. One of them, usually calledfloat, consists of 32 bits, allocated as follows:

1 bit for the sign (positive or negative)

8 bits for the range (the exponent field)

23 bits for precision (the fraction field)

In most computers manufactured today, these bits represent numbers according to the formula in Figure 2.2. This formula is part of the IEEE Standard for Floating Point Arithmetic.

Recall that we said that the floating point data type was very much like the scientific notation you learned in high school, and we gave the example 6.023 • 1023.

This representation has three parts: thesign, which is positive, thesignificant digits 6.023, and theexponent23. We call the significant digitsthe fraction.Note that the fraction is normalized, that is, exactly one nonzero decimal digit appears to the left of the decimal point.

The data type and formula of Figure 2.2 also consist of these three parts. Instead of a fraction (i.e., significant digits) of four decimal digits, we have 23 binary digits. Note that the fraction is normalized, that is, exactly one nonzero binary digit appears to the left of the binary point. Since the nonzero binary digit has to be a 1 (1 is the only nonzero binary digit) there is no need to represent that bit explicitly. Thus, the formula of Figure 2.2 shows 24 bits of precision, the 23 bits from the data type and the leading one bit to the left of the binary point that is unnecessary to represent explicitly.

Instead of an exponent of two decimal digits as in 6.023 • 1023, we have in Figure 2.2 eight binary digits. Instead of a radix of 10, we have a radix of 2. With eight bits to represent the exponent, we can represent 256 exponents. Note that the formula only gives meaning to 254 of them. If the exponent field contains 00000000 (that is, 0) or 11111111 (that is, 255), the formula does not tell you how to interpret the bits. We will look at those two special cases momentarily.

For the remaining 254 values in the exponent field of the floating point data type, the explanation is as follows: The actual exponent being represented is the unsigned number in the data type minus 127. For example, if the actual exponent is +8, the exponent field contains 10000111, which is the unsigned number 135. Note that 135 - 127 = 8. If the actual exponent is -125, the exponent field contains 00000010, which is the unsigned number 2. Note that 2 - 127 = -125.

The third part is the sign bit: 0 for positive numbers, 1 for negative numbers. The formula contains the factor -1S, which evaluates to +1 if s = 0, and -1 if  s = 1.

Example 2.12

How is the number -6 represented in the floating point data type?

First, we express -6 as a binary number: -110.101.

- (1 • 22 + 1 • 21 +  0 • 20 + 1 • 2-1 + 0 • 2-2  + 1 • 2-3)

Then we normalize the value, yielding -1.10101 •22.

The sign bit is 1, reflecting the fact that -6 is a negative number. The exponent field contains 10000001

the unsigned number 129, reflecting the fact that the real exponent is + 2 (129 - 127 =+2).The fraction is 

the 23 bits of precision, after removing the leading 1. That is, the fraction is 10101000000000000000000.

The result is the number - expressed as a floating point number: 

1 10000001 10101000000000000000000

Example 2.13

What does the floating point data type

0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00

represent?

The leading bit is a 0. This signifies a positive number. The next eight bits represent the unsigned number 123. If we subtract 127, we get the actual exponent - 4 . The last 23 bits are all 0. Therefore the number being represented is + 1.000000000000000000000000 • 2-4, which is .

We noted that the interpretation of the 32 bits required that the exponent field contain neither 00000000 nor 11111111. The IEEE Standard for Floating Point Arithmetic also specifies how to interpret the 32 bits if the exponent field contains 00000000 or 11111111.

If the exponent field contains 00000000. the exponent is -126, and the significant digits are obtained by starting with a leading 0, followed by a binary point, followed by the 23 bits of the fraction field, as follows:

-1s • 0. fraction • 2-126

For example, the floating point data representation

0 00000000 00001000000000000000000

can be evaluated as follows: The leading 0 means the number is positive. The next eight bits, a zero exponent, means the exponent is -126. The last 23 bits form the number 0.000010000000000000000, which equals 2-5. Thus, the number represented is 2-5 • 2-126which is 2-131

This allows very tiny numbers to be represented.

Example 2.14

The following four examples provide further illustrations of the interpretation of the 32-hit floating point data type according to the rules of the IEEE standard.

0 10000011 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 is 1.00101 • 24 == 18.5

The exponent field contains the unsigned number 131. Since 131 - 127 is 4. the exponent is +4. Combining a 1 to the left of the binary point with the fraction held to the right of the binary point yields 1.00101. If we move the binary point four positions to the right, we get 10010.1, which is 18.5.

110000 010 00101000000000000000000 is - 1 • 1.00101 • 23 = -9.25

The sign bit is 1. signifying a negative number. The exponent is 130. signifying an exponent of 130 - 127. or +3. Combining a 1 to the left of the binary point with the fraction field to the right of the binary point yields 1.00101. Moving the binary point three positions to the right, we get 1001.01. which is -9.25.

011111 110 11111111111111111111111 is -2128. The sign is +. The exponent is 254 - 127, or +127. Combining a 1 lo the left of the binary point with the fraction field to the right of the binary point yields 1.11111111 . . . 1. which is approximately 2. Therefore, the result is approximately 2128.

1 00000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 is - 2-129

The sign is - . The exponent field contains all 0s. signifying an exponent of -126. Combining a 0 to the left of the binary point with the fraction field to the right of the binary point yields 2 for the fraction. Therefore, the number represented is -2-23 • 2-126 which equals -2-149

A detailed understanding of IEEE Floating Point Arithmetic is well beyond what should be expected in this first course. Indeed, we have not even considered how to interpret the 32 bits if the exponent field contains 11111111. Our purpose in including this section in the textbook is to at least let you know that there is, in addition to 2's complement integers, another very important data type available in almost all ISAs. This data type is called floating point, it allows very large and very tiny numbers to be expressed at the expense of reducing the number of binary digits of precision.

2.7.3 ASCII Codes

Another representation of information is the standard code that almost all computer equipment manufacturers have agreed to use for transferring character codes between the main computer processing unit and the input and output devices. That code is an eight-bit code referred to as ASCII. ASCII stands for American Standard Code for Information Interchange. It (ASCII) greatly simplifies the interface between a keyboard manufactured by one company, a computer made by another company, and a monitor made by a third company.

Each key on the keyboard is identified by its unique ASCII code. So, for example, the digit 3 expanded to 8 bits with a leading 0 is 00110011, the digit 2 is 00110010, the lowercaseeis 01100101, and the carriage return is 00001101. The entire set of eight-bit ASCII codes is listed in Figure E.3 of Appendix E. When you type a key on the keyboard, the corresponding eight-bit code is stored and made available to the computer. Where it is stored and how it gets into the computer is discussed in Chapter 8.

Most keys are associated with more than one code. For example, the ASCII code for the letterEis 01000101, and the ASCII code for the letter e is 01100101. Both are associated with the same key, although in one case the Shift key is also depressed while in the other case, it is not.

In order to display a particular character on the monitor, the computer must transfer the ASCII code for that character to the electronics associated with the monitor. That, too, is discussed in Chapter 8.

2.7.4 Hexadecimal Notation

We have seen that information can be represented as 2's complement integers, as bit vectors, in floating point format, or as an ASCII code. There are other representations also, but we will leave them for another book. However, before we leave this topic, we would like to introduce you to a representation that is used more as a convenience for humans than as a data type to support operations being performed by the computer. This is thehexadecimal notation. As we will see, it evolves nicely from the positional binary notation and is useful for dealing with long strings of binary digits without making errors.

It will be particularly useful in dealing with the LC-3 where 16-bit binary strings will be encountered often.

An example of such a binary string is

0011110101101110

Let's try an experiment. Cover the preceding 16-bit binary string of 0s and 1s with one hand, and try to write it down from memory. How did you do? Hexadecimal notation is about being able to do this without making mistakes. We shall see how.

In general, a 16-bit binary string takes the form

a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1a0

where each of the bits ai is either 0 or 1.

If we think of this binary string as an unsigned integer, its value can be computed as

a15 • 215 +a14 • 214 +a13 • 213 +a12 • 212 +a11 • 211 +a10 • 210+ a9 • 29

+ a8 • 28+ a7 • 27+ a6 • 26+ a5 • 25+ a4 • 24+ a3 • 23+ a2 • 22+ a1 • 21+ a0 • 20

We can factor 212 from the first four terms, 28 from the second four terms, 24from the third set of four terms, and 20 from the last four terms, yielding

212 [a15 • 23 +a14 • 22 +a13 • 21 +a12 • 20]

+ 28[a11 • 23 +a10 • 22+ a9 • 21+ a8 • 20]

+ 24[a7 • 23+ a6 • 22+ a5 • 21+ a4 • 20]

+ 20[a3 • 23+ a2 • 22+ a1 • 21+ a0 • 20]

Note that the largest value inside a set of square brackets is 15, which would be the case if each of the four bits is 1. If we replace what is inside each square bracket by a symbol representing its value (from 0 to 15), and we replace 212  by its equivalent 163, 28  by 162, 24 by 161, and 20 by 160, we have

h3 • 163 +h2 •162 +h1 • 161 +h0 • 160

where h3, for example, is a symbol representing

a15 • 23 +a14 • 22 +a13 • 21 +a12 • 20

Since the symbols must represent values from 0 to 15, we assign symbols to these values as follows: 0, 1,2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. That is, we represent 0000 with the symbol 0,0001 with the symbol 1 , . . . 1001 with 9,1010 with A, 1011 with B, . . . 1111 with F. The resulting notation is hexadecimal, or base 16.

So, for example, if the hex digits E92F represent a 16-bit 2's complement integer, is the value of that integer positive or negative? How do you know?

Now, then, what is this hexadecimal representation good for, anyway? It seems like just another way to represent a number without adding any benefit.

Let's return to the exercise where you tried to write from memory the string

0011110101101110

If we had first broken the string at four-bit boundaries

0011 1101 0110 1110

and then converted each four-bit string to its equivalent hex digit

3 D 6 E

it would have been no problem to jot down (with the string covered) 3D6E.

In summary, hexadecimal notation is mainly used as a convenience for humans. It can be used to represent binary strings that are integers or floating point numbers or sequences of ASCII codes, or bit vectors. It simply reduces the number of digits by a factor of 4, where each digit is in hex (0,1, 2 , . . . F) instead of binary (0, 1). The usual result is far fewer copying errors due to too many 0s and 1s.

2.7  其它表示法

另外四种在我们的工作中有用的表示法分别是位向量、浮点数类型、ASCII码类型和十六进制类型。

2.7.1 位向量

位向量用于描述一个由几个相互无关的处于忙或闲的单元组成的复杂的系统。此系统可能是一个其中的每个单元都是一台特定的机器的工厂,或者每个单元都是一辆计程车的计程车网络。在这样的系统中,确定了哪个单元处于繁忙状态,哪个处于空闲状态,就可以根据需要指派它们去做工作。

如果我们有n个单元,我们可以用一个被称为位向量的n位的位组合来跟踪这n位,如果某个单元空闲,我们就让这个单元的位为1,否则为0。

例2.11   假设我们有8台机器,我们可以用一个8位的位向量(可命名为BUSINESS)来跟踪这8个单元的状态。如果某个单元空闲,我们就让这个单元的值为1,否则为0。这些单元被从右向左标记为0到7。

BUSINESS位向量11000010对应的状态是只有7、6和1单元是空闲的,因此可以被分配工作。

如果要给单元7分配工作,我们需要对当前的位向量“11000010”和位屏蔽“01111111”做逻辑“与”运算,这样,就得到一个新的BUSINESS位向量。位屏蔽的目的是清空BUSINESS位向量的7单元,位向量的结果是“01000010”。

回忆我们在例2.7中的位屏蔽的概念。位屏蔽是为了区别对待二进制组合中的一些位和另一些被忽略的位。在本例中,位屏蔽将第7位清零,而将其它的位保持不变(被忽略)。

假设单元5完成了工作,处于空闲状态。我们可以通过对BUSINESS位向量和位屏蔽00100000做或运算得到新的结果,最后结果为01100010。

2.7.2 浮点数类型

在本书中的大多数运算使用的是整数。例如,LC-3使用的是16位补码,除了用1位表示值的正负,其余15位表示值的大小。使用这种方法,我们可以表示的数值的范围为-32768到+32767,即-215到+215-1。我们称数值的精度是15位,数值范围是215。有时我们需要表示很大的数,但我们却不需要精度有那么多位,例如大家所熟悉的数6.023*1023,要表示这个数所需的范围,要比16位补码的范围215大的多。另外,用15位的精度表示这个数也没有必要,我们只需足够的位数表示4个重要的数(6023)就可以了。

所以我们面临着一个问题:我们有过多的位数表示精度,但却没有足够的位数表示范围。

浮点数类型可以解决这一问题。它用一些位数来表示值的范围,用其余的位数(除了最左端的符号位)来表示值的精度,而不是将所有的位数(除最左端的符号位)全用来表示值的精度。

如今的多数指令集结构都定义了不止一种浮点数类型。其中一种通常被称作float(单精度浮点数),它共包含32位,分配情况如下:

1位表示符号(正或负)

8位表示范围指数域

23位表示精度分数域

在当今生产的大多数计算机中,这些位按照图2.2的公式表示数字。这个公式是“IEEE”浮点数运算标准的一部分。

这里所讲的浮点类型和科学记数法很相近。现在以6.023*1023为例,这个表示法包含三个部分:符号(这里是正号),有效数字6.023以及指数23。我们称有效数字部分为分数。注意,分数是规格化(标准化)的,也就是说,只有一位非零的十进制数出现在该小数的最左端。

图2.2中的公式和数据类型也包括这三个部分。分数部分不是4位十进制小数(有效数字),而是23位二进制数。注意到该分数也是规格化的,也就是说,只有唯一一位非零的二进制数出现在二进制小数点的左端。因为这个非零数只能是1,所以不需要分配一位将其明确表示出来。因此图2.2中的公式表示了24位的精度,包括数据类型的23 位和二进制小数点左端的没有必要明确表示出来的一位1。

我们用8位二进制数而不是两位十进制数作指数,以2为底,而不是以10为底。用8位表示指数,就可以表示256个指数。注意,公式只给出了其中的254种。如果指数域为00000000(即0)或11111111(即255),此公式并未告诉我们怎样解释这两个数。我们将在后面讨论这两种情况。

对于浮点类型数据指数域内的剩下的254个值,其解释如下:实际上被表示的指数是数据中的无符号整数减去127。例如,如果实际指数是+8,那么指数域上应该是10000111,也就是135,是由于135-127=8。如果实际指数是-125,指数域就是00000010,即无符号整数2,是因为2-127=-125。

1                              8        23

s    exponent      fraction

N=(-1)s*1.fraction*2exponent-127,1<=exponent<=254

图2.2 浮点数数据类型

第三部分是符号位:0代表正数,1代表负数。该公式包含了这样一个因子(-1)s,当s=0时计算值为+1,当s=1时计算值为-1。

例2.12  怎样用浮点数表示?

首先,我们将用二进制数表示为:-100.101,即

-(1*22+1*21+0*20+1*2-1+0*2-2+1*2-3)

然后将它规范地表示为-1.10101*22

符号位应为1,反映是个负数。指数部分为10000011,即无符号整数129,反映了指数为+2(129-127=+2)。分数部分是去掉开头的1后的23位精度,也就是说,分数部分是10101000000000000000000。用浮点数表示的结果就是:

1 10000011 10101000000000000000000

例2.13  浮点数001111011000000000000000000000000表示多少?

最高位为0,表示该数是个正数。;跟着的8位代表无符号整数123,减去127,得到实际指数为-4;最后23位都是0。因此这个数表示为+1.00000000000000000000000000*2-4,也就是1/16。

注意:32位的指数部分里不包含0000000或1111111。IEEE的浮点数标准叙述了怎样来解释32位中的指数部分是0000000或1111111的情况。

如果指数部分是0000000,那么它的指数就是-126,得到的有效位以0开头,后面是二进制的23位的小数部分,形式如下:

-1s*0.fraction*2-126

例如,浮点数0 0000000 000010000000000000000000可以按照如下方法计算其值:

第一个0表示它是正数,接下来的八位,是一个零指数,意味着它的指数是-126,后面的23位形成0.00001000000000000000000,即2-5。这个数就是2-5*2-126

这样就能表示很小的数。

例2.14 下面四个例子是根据IEEE标准的规则表示的32位浮点数:

0         10000011 0010100000000000000000是1.00101*24=18.5

指数域包含一个无符号数131,由于131-127=4,所以指数为+4。将分数域的小数点左边加一个1形成1.00101。如果将小数点向右移动4位,我们得到10010.1,即18.5。

1         10000010 0010100000000000000000是-1*1.00101*23=-9.25

符号位为1,表示负数。指数是130,表示130-127,即指数为3。将分数域的小数点左边加一个1形成1.00101。如果将小数点向右移动3位,我们得到1001.01,即-9.25。

0         11111110 1111111111111111111111约为2128

符号为正。指数是254-127,即+127。将分数域的小数点左边加一个1形成1.11111111111111111111111,约等于2。因此,结果约为2128

1         00000000 0000000000000000000001是-2-149

符号为负。指数域全为0,表示指数是-126。将分数域的小数点左边加一个0形成2-23。因此,结果为2-23*2-126,等于-2-149

关于IEEE浮点数的详细解释超出了本书的范围。事实上,我们还没有考虑当指数为11111111时,如何解释这32位浮点数。本节中的目标只是希望你了解除了补码外,在几乎所有的指令集结构中都存在另一种非常重要的数据类型,即浮点数据类型。它使得很大或很小的数能够以减少二进制精度位数为代价,被表示出来。

2.7.3 ASCII码

信息的另一种表现形式是几乎所有的计算机设备生产商都用于在主要的计算机处理单元和输入输出设备之间转换字符码的标准码。这种8位码被称为ASCII,代表美国标准信息交换码。它极大地简化了某公司生产的键盘、另一公司制造的计算机和第三个公司制造的显示器之间的接口。

键盘上的每个键被一个唯一的ASCII码所识别,例如,数字3是被一个以开头的0扩展为8位的00110011,数字2是00110010,小写字母e是01100101,回车是00001101。8位ASCII码的全集被列于附录E的图E.2中。当你在键盘上敲击某个键时,相应的8位码被存储,提供给计算机。将在第8章讨论,这个8位码被存储到什么地方,以及如何被存进计算机。

大多数的键与一个以上的码有关,例如,字母E的ASCII码是01000101,而字母e的ASCII码是01100101,二者都与一个键有关,尽管其中一种情况需要按下Shift键,而另一种情况则不需要。

2.7.4 十六进制表示法

我们已经看到信息可以被表示为二进制补码、位向量、浮点数格式、或ASCII码。还存在一些其他的表现形式,在我们结束本章之前,我们将向你介绍一种对于我们的使用而言,比被计算机支持的数据类型更方便的表示法,那就是十六进制表示法。正如我们即将看到的,它发展了二进制的位置计数法,对于无误的处理一长串的二进制数位很有用。

它对于处理LC-3经常遇到的16位的二进制位组合是特别有用的。

例如,一个二进制位组合为

0011110101101110

让我们做个试验,假如用一只手盖住这个0和1的16位的二进制位组合,试着通过记忆写下它。你做得怎么样?十六进制计数法就让你有可能无误的做到这一点。我们来看看怎么做。

一般来说,一个16位的二进制位组合具有如下的格式:

a15 a14 a13a12 a11a10a9a8 a7a6 a5a4a3 a2 a1a0

其中,ai的每一位要么是0,要么是1。

如果我们把这个二进制位组合作为无符号整数,它的值可以被计算如下:

215*a15 +214*a14+213*a13+212*a12 +211*a11+210*a10+29* a9+28*a8+27* a7+26* a6+25* a5+24*a4+23* a3+22*a2+21* a1+20* a0

我们可以从前四项中分解出因子212,从第二个四项中分解出28,从第三个四项中分解出24,从第四个四项中分解出20,得到

212*[23*a15 +22*a14+21*a13+20*a12] +28*[23*a11+22*a10+21* a9+20*a8]+ 24*[23* a7+22* a6+21* a5+20*a4]+ 20*[23* a3+22*a2+21* a1+20* a0]

注意在中括号里的最大值为15,这是当四位的每一位都为1时的情况。如果我们用一个符号取代每个中括号中的值(从0到15),用等价的163代替212,用162代替28,161代替24,160代替20,我们就有

163* h3+162*h2+161*ha1+160*h 0

这里的h3是个符号,表示

23*a15 +22*a14+21*a13+20*a12

既然这些符号必须表示从0到15的值,我们为这些值分配符号如下:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。也就是说,我们用符号0表示0000,用符号1表示0001,…,用9表示1001,用A表示1010,用B表示1011,…,用F表示1111。这种计数法就是十六进制或以16为基。

那么,如果十六进制数E92F表示一个16位的二进制补码整数,这个整数的值是正数还是负数?我们如何得知?

此外,这种十六进制表示法的好处是什么?它看起来好像只是另一种表示数字的方式,并未增加任何益处,让我们回到那个让你通过记忆写出一串数字的练习:

0011110101101110

如果我们首先将这个位组合按照每四位进行分割

0011 1101 0110 1110

然后将每四位转换为相等的十六进制数

3    D    6    E

当遮住这串数字时,记下3D6E应该是没有问题的。

总之,十六进制计数法的采用方便了人们对数据的表达。它能表达:整数、浮点数或一串ASCII码、位向量。它通过将二进制数中每四位的组合用一位十六进制数(0,1,2,…F)来表示,从而大大减少了数字的位数。同时也降低了人们因抄写过多的0或1而造成错误的机率。

YP.2.7 Other Representations(双语)相关推荐

  1. YP.1.3 Two Recurring Themes(双语)

    from: [1] Introduction to Computing System, from Bits and Gates to C and Beyond. Yale N. Patt and Sa ...

  2. ZH奶酪:【阅读笔记】Deep Learning, NLP, and Representations

    中文译文:深度学习.自然语言处理和表征方法 http://blog.jobbole.com/77709/ 英文原文:Deep Learning, NLP, and Representations ht ...

  3. 【Paper】Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation

    论文原文:PDF 论文年份:2014 论文被引:11398(2020/11/08) 18225(2022/03/26) 论文作者:Kyunghyun Cho et.al. 文章目录 Abstract ...

  4. 【论文笔记——DIM】Learning Deep Representations By Mutual Information Estimation and Maximization

    arxiv:https://arxiv.org/abs/1808.06670 code:https://github.com/rdevon/DIM report video:https://www.y ...

  5. EMNLP 2022 | RAPO: 基于自适应排序学习的双语词典归纳

    ©PaperWeekly 原创 · 作者 | 李朝卓 单位 | 微软 研究方向 | 图挖掘.自然语言处理 论文标题: RAPO: An Adaptive Ranking Paradigm for Bi ...

  6. Python Tutorial中英双语对照文档2

    接 Python Tutorial中英双语对照文档1 CHAPTER SIX MODULES 模块 If you quit from the Python interpreter and enter ...

  7. 【通用大语言模型】GLM-130B:一个开放的双语预训练模型

    GLM-130B:一个开放的双语预训练模型 论文:https://aclanthology.org/2022.acl-long.26.pdf There have been various types ...

  8. 论文学习笔记02(Learning phrase representations using rnn encoder-decoder for statistical machine translat)

    论文学习笔记 Learning phrase representations using rnn encoder-decoder for statistical machine translation ...

  9. 搜狗上线海外权威健康搜索 支持中英双语一键切换

    2018年4月25日,搜狗搜索交出利好财报成绩单的同时,升级全球权威健康信息搜索,再度发力"人工智能+健康"赛道.在"全球权威健康信息问搜狗--搜狗搜索权威健康信息发布会 ...

最新文章

  1. QIIME 2用户文档. 18序列双端合并read-joining(2019.7)
  2. oracle怎么查看一个表或一个索引占用多少空间
  3. ExtJs6解决添加和修改Form共用一个form的隐藏域的id的取消传值
  4. 讲一下python的背景知识
  5. python如何使用ppip安装xlwt_Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)...
  6. Hive更改表名FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Una ble
  7. 查看虚拟机cpu型号_虚拟机管理器(Virtual Machine Manager)简介 | Linux 中国
  8. node --- koa、Mongoose、vue联系知识梳理
  9. Netweaver里某个software component和C4C的版本
  10. [TED] Kinect控制的四翼直升机
  11. Linux 内核中的宏定义
  12. 1月2日 Ubuntu14.04安装和配置ROS Indigo(一)
  13. Flexigrid For Asp.Net-MVC
  14. AndroidTV开发7实现仿小米电视和各种盒子TV焦点放大缩小效果
  15. KL散度、JS散度以及交叉熵对比
  16. cad如何多选对象_CAD如何快速选择对象
  17. VMware虚拟机启动失败:“DevicePowerOn”
  18. 正则表达式之基本原理
  19. 记一次端口聚合之【牵一发而动全身】
  20. ISO26262 功能安全各个阶段测试要求

热门文章

  1. 日常一记(3)--禁止excel自动运行宏
  2. 中国银联正式开展非标商户管理试点工作 将严打“大商户模式”
  3. 2022年你应该知道的十大Python库
  4. iOS新增3DTouch分享app菜单 (#原来iphone可以称重# ​ )
  5. 【Mysql】一个简易的索引方案
  6. Greenplum常用SQL——通过表名查找shema名
  7. 彻底删除GitHub仓库的某个文件或文件夹及其历史记录
  8. 2021双十一自动浏览脚本,京东淘宝自动化脚本末班车
  9. 随遇而安也是一种选择
  10. 南卡和漫步者蓝牙耳机哪个好?国产蓝牙耳机南卡和漫步者360度对比评测