更新今天的内容,由于这篇日记是用零散时间完成的,所以或许看起来会有一点乱,请谅解。
早上,我查了一下笔记本上早早抄下来的笔记本的单词,感觉还是不要荒废的好。明日复明日,明日何其多,我不能成为时间的看客。说回正题,第一个单词是letter,既可以做名词也可以做动词,名词有两个解释,分别是信(a written for printed message that is usually put in an envelope and set by mail)和字母(a sign in writing or print that represents a speech sound)。动词是画、书写(to write , draw , paint etc letter or word in something)的意思。通常情况下,letter作动词时用被动语态。to the letter表示尽全力的意思,但是我不知道这个短语在句子结构里改叫做什么,表语吗?第二个单词alphabet,也就是字母表,刚刚查了一下,这个单词是希腊字母第一个和第二个单词组合成的。alpha和beta。binary,decimal,hexadecimal,octal分别是二进制,十进制,十六进制和八进制。philosophy是哲学的意思,他们变形philosopher是哲学家的意思。content有多种意思和词性。根据重音位置不同,可以分为两类。如果重音在前面的音节,那么就是名词,内容、含量的意思,其中用作内容是通常为复数,而含量通常用作单数。如果重音在后面,那么就有名词和形容词。名词是指满意,有短语do sth to one's content。形容词是满意的,content(for sb)to do sth。
下面就补全昨晚的内容吧,也就是浮点数的表示方式。浮点数的表示方式相信大家都看过,就是科学计数法。浮点数使用浮点表示法进行存储的,既然是和科学计数法相同,那么就至少包含三个元素,符号,指数和原数。浮点表示法也一样,只不过不同的是,原数我们再将其规范化(也就是将数字化成1.14514之类的,小数点前只有一位数字)之后,用无符号整数表示并且在该数字的右边补全0(如果位数不足)。这时候你可能会好奇,我们则么确定原数的位数和指数的位数呢?还有指数位是可以存在负数的,是用补码表示法还是用绝对值表示法进行存储呢?
第一个问题,我们怎样确定位数。这里其实早已规范化了,就是IEEE标准。IEEE用两种规格来定义浮点数的表示,分别是32位和64位。这两种区别在于每个部分所占的位数不同,我们先以32位为例。符号位占一位(0表示正,1表示负),指数位占8位,原数位占23位,因为指数为最多是127位,所以这种模式也被称为127模式。64位模式中符号位不变,指数为变成10位,原数位变成53位,同理,该模式也被称为1023模式。
第二个问题,我们如何存储指数位上的数字。我们已经有了补码表示法,绝对值表示法,是该用哪一种方式呢?答案是,都不用。可能IEEE觉得这里用这两种方式太过于繁琐,故基于补码表示法创造出了新的余码表示法。其实就是将补码表示法中原本所代表的数字全部移动(2^m-1)位使所有的数都为非负数,因此(2^m-1)也叫做偏移量,上文中的127和1023也都是偏移量的不同表达方式。
那么远离我们都知道了,现在就开始转化吧。首先是赋予该数一个符号位。然后就是将该数进行初始化(就是类似于1.14514*2^5这种类型,可以用科学计数法来理解)。接着将初始化后的指数位加上偏移量得到总值,将该总值化为二进制数字存储入指数位。最后就是将原数用无符号整数的表示方法表示出来,但是在存储时将符号位删去再进行存储,该补零的补零。还原就是反过程。
既然计算机用的浮点数表示法有固定的位数,那么必然也就会有溢出的存在。这里在存储非常小和非常大的数据时,会产生溢出的现象。如果存储的数据很小,那么指数位置和原数位置不够其存储,就会选择性地将后面的位数进行存储。会产生负溢出(从负数到正数)。相反,如果存储的数字很大,那么就会出现正溢出(从负数到正数)。
好的,这就是昨天内容的补全了。希望我过了一个星期,一个月还可以回想起来我写过什么吧。
最后一部分其实是早上上课的内容,就是一些简单的推理公式,这里也做一些总结吧。
下面是解题步骤,虽然我感觉这种解题过程是多余并且痛苦的,解体的目的是得到答案,而不是制作一个艺术品,但是为了考试只能这样。
列出条件,然后根据条件得到一些次要结论,再将次要结论归类于条件之中,重复上述操作直到得到结果。
今天的任务没有达标,等发布之后,我会在学一点,等到明天一起汇报。