青春荒唐我不负己

来源:互联网 发布:睿博数据技术有限公司 编辑:程序博客网 时间:2024/04/27 23:18

16340226
数据科学与计算机学院
[学院指向]( http://sdcs.sysu.edu.cn/)


目录

  • 青春荒唐我不负己
    • 苦中也有甜
    • 浅谈学习之路
      • IEEE1
      • 一个数的反码加一等于这个数的补码的证明
      • 转义序列的含义与符号说明
    • 眺远方挥斥方遒


青春荒唐我不负己

内容

1.苦中也有甜;

一切尘埃落定时,唯一剩下得就只是去笑脸朝天淡然接受。
高校录取结束,最终中大录取的却不是我心中憧憬的临床医学。记不起来自己当时失落了有多久,跟儿时的梦不得不去相背离的苦痛现在还清晰的刻在脑海中。
梦就像五彩的气泡,绚丽多姿,却也易不复再现。
8月末,踏上前往广州的旅途。
刚开学时候心里的一腔新鲜感,逐渐被上专业课时候的迷茫无助所消耗殆尽。打心底里佩服那些对打码很熟练的同学,即使那些最简单的东西我仍旧是手足无措,但旁人早已轻轻松松拿下。熬夜去看书,去了解额外的东西,可是收效甚微。心里跳出过无数次转专业的念头,可这是在逃避,是去选择当一个懦夫。
山重水复疑无路般的迷惘。
高一届的师兄这样说:“平复自己躁动的心,刚开始的不适应会随着你的提升一点点消散。”开启高三模式,逼着自己去做不喜欢的事,去看那些看不懂的符号公式,去操作那些让人眼花缭乱的代码。不顾窗外的日月轮回,不顾日历的更迭交替。
成功证明二进制八进制十六进制之间的转换关系,成功证明一个数的补码等于这个数的反码加一。原来,思索的过程才是我真正去成长的过程。原本我认为的枯索无味的东西中也含着旁人所无法体会的香甜感。
当日吟咏,千里求学离家去,而今不见故乡人:今朝呐喊,青春都一饷,忍把浮名,换了浅斟低唱。


2.浅谈学习之路;

在这个版块,我会大概去谈一下自己在学习编程这方面所了解到的一些东西。

IEEE1

IEEE 754 标准是IEEE二进位浮点数算术标准(IEEE Standard for Floating-Point Arithmetic)的标准编号,等同于国际标准ISO/IEC/IEEE 60559[。该标准由美国电气电子工程师学会(IEEE)计算机学会旗下的微处理器标准委员会(Microprocessor Standards Committee, MSC)发布。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number),一些特殊数值(无穷(Inf)与非数值(NaN)),以及这些数值的「浮点数运算子」;它也指明了四种数值修约规则和五种例外状况(包括例外发生的时机与处理方式)
该标准的全称为IEEE二进位浮点数算术标准(ANSI/IEEE Std 754-1985),又称IEC 60559:1989,微处理器系统的二进位浮点数算术(本来的编号是IEC 559:1989)[1]。后来还有「与基数无关的浮点数」的「IEEE 854-1987标准」,有规定基数为2跟10的状况。现在最新标准是「IEEE 854-2008标准」。
IEEE 754 标准规定了计算机程序设计环境中的二进制和十进制的浮点数自述的交换、算术格式以及方法[1] 。
中文名
IEEE二进位浮点数算术标准
外文名
IEEE 754
标准编号
IEEE 754-2008
等价标准
ISO/IEC/IEEE 60559:2011
标准名称
IEEE浮点数算术标准
制定机构
微处理器标准委员会(MSC)
目录
简介

编辑
IEEE浮点数算术标准(IEEE 754)是最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number),一些特殊数值(无穷与非数值(NaN)),以及这些数值的“浮点数运算子”;它也指明了四种数值修约规则和五种例外状况(包括例外发生的时机与处理方式)。
IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43位以上,很少使用)与延伸双精确度(79位元以上,通常以80位元实做)。只有32位模式有强制要求,其他都是选择性的。大部分编程语言都有提供IEEE格式与算术,但有些将其列为非必要的。例如,IEEE 754问世之前就有的C语言。IEEE754标准包括IEEE算术,但不算作强制要求(C语言的float通常是指IEEE单精确度,而double是指双精确度)。
该标准的全称为IEEE二进制浮点数算术标准(ANSI/IEEE Std 754-1985),又称IEC 60559:1989,微处理器系统的二进制浮点数算术(本来的编号是IEC 559:1989)[1]。后来还有“与基数无关的浮点数”的“IEEE 854-1987标准”,有规定基数为2跟10的状况。
浮点数剖析

以下是该标准对浮点数格式的描述。
表示位元的约定

我们将电脑上一个长度为W的字(word)其中的位元,从内存地址低端到高端,以0到W−1的整数编码,通常将内存地址低端的位写在最右边,以让编号最小的位元与最低效位元(least significant bit或lsb,代表最小位数,改变时对数值影响最小的位元)一致。声明这一点的必要性在于区分大端法和小端法,X86体系架构是小端序的数据存储。
对于十进制整数N,必要时表示为N10以与二进制的数的表示N2相区分。
对于一个数,其二进制科学计数法表示下的指数的值,下文称之为指数的实际值;而根据IEEE 754标准对指数部分的编码的值,称之为浮点数表示法指数域的编码值。
整体呈现

二进制浮点数是以符号数值表示法格式储存,将最高效位元指定为符号位元(sign bit);“指数部份”,即次高效的e位元,为浮点数中经指数偏差(exponent bias)处理过后的指数;“小数部份”,即剩下的f位元,为有效位数(significand)减掉有效位数本身的最高效位元。 如下图所示:
指数偏差
指数偏差(表示法中的指数为实际指数减掉某个值)为,其中的e为存储指数的比特的长度。减掉一个值因为指数必须是有号数才能表达很大或很小的数值,但是有号数通常的表示法——补码(two’s complement),将会使比较变得困难。为了解决这个问题,指数在存储之前需要做偏差修正,将它的值调整到一个无符号数的范围内以便进行比较。此外,指数采用这种方法表示的优点还在于使得浮点数的正规形式和非正规形式之间有了一个平滑的转变。指数偏差
规约形式的浮点数

如果浮点数中指数部分的编码值在0 < exponent < 2e-1之间,且尾数部分最高有效位(即整数位)是1,那幺这个浮点数将被称为规约形式的浮点数。
非规约形式的浮点数

如果浮点数的指数部分的编码值是0,尾数为非零,那么这个浮点数将被称为非规约形式的浮点数。IEEE 754标准规定:非规约形式的浮点数的指数偏移值比规约形式的浮点数的指数偏移值大1.例如,最小的规约形式的单精度浮点数的指数部分编码值为1,指数的实际值为-126;而非规约的单精度浮点数的指数域编码值为0,对应的指数实际值也是-126而不是-127。实际上非规约形式的浮点数仍然是有效可以使用的,只是它们的绝对值已经小于所有的规约浮点数的绝对值;即所有的非规约浮点数比规约浮点数更接近0。规约浮点数的尾数大于等于1且小于2,而非规约浮点数的尾数小于1且大于0
除了规约浮点数,IEEE754-1985标准采用非规约浮点数,用来解决填补绝对值意义下最小规格数与零的距离。(举例说,正数下,最大的非规格数等于最小的规格数。而一个浮点数编码中,如果exponent=0,且尾数部分不为零,那幺就按照非规约浮点数来解析)非规约浮点数源于70年代末IEEE浮点数标准化专业技术委员会酝酿浮点数二进制标准时,Intel公司对渐进式下溢出(gradual underflow)的力荐。当时十分流行的DEC VAX机的浮点数表示采用了突然式下溢出(abrupt underflow)。如果没有渐进式下溢出,那幺0与绝对值最小的浮点数之间的距离(gap)将大于相邻的小浮点数之间的距离。例如单精度浮点数的绝对值最小的规约浮点数是1.0\times 2^{-126},它与绝对值次小的规约浮点数之间的距离为2^ (-126 ) * 2^ (-23) = 2^ (-149)。如果不采用渐进式下溢出,那幺绝对值最小的规约浮点数与0的距离是相邻的小浮点数之间距离的2^23倍。可以说是非常突然的下溢出到0。这种情况的一种糟糕后果是:两个不等的小浮点数X与Y相减,结果将是0。训练有素的数值分析人员可能会适应这种限制情况,但对于普通的程序员就很容易陷入错误了。采用了渐进式下溢出后将不会出现这种情况。
特殊值

以上规则,总结如下:
小数部分最高有效位由指数部分决定。如果指数在0 < exponent <2^e-2 之间,那么小数部分最高有效位将是1,而且这个数将被称为正规形式。如果指数是0,有效数最高有效位 将会是0,并且这个数将被称为非正规形式。这里有三个特殊值需要指出:
如果 指数 是0 并且 小数部分是0,这个数±0 (和符号位相关)
如果 指数 =2^e-1并且小数部分是0,这个数是±无穷大 (同样和符号位相关)
如果 指数 =2^e-1并且 小数部分非0,这个数表示为不是一个数(NaN)
形式
  
指数
小数部分

0
0
非正规形式
  
0
非0
正规形式
1到
任意
无穷
0
NaN
非零
32位单精度

单精度二进制小数,使用32位存储。
1 8 23 位长
+-+——–+———————–+
|S| Exp | Fraction |
+-+——–+———————–+
31 30 23 22 0 位编号(从右边开始为0)
偏正值 +127
64位双精度

双精度二进制小数,使用64位存储。
1 11 52 位长
+-+——–+———————–+
|S| Exp | Fraction |
+-+——–+———————–+
63 62 52 51 0 位编号(从右边开始为0)
偏正值 +1023


一个数的反码加一等于这个数的补码的证明.

(非Markdown语言证明)
设某个K位二进制数A1……Ak(k>1,k∈N+),

  则将其转化为十进制数则为A1*2^(k-1)+.......+Ak*2^0=B  这个K位二进制的反码为(1-A1)......(1-Ak),  将其反码转换为十进制的数为(1-A1)*2^(k-1)+........+(1-Ak)*2^0.  则(1-A1)*2^(k-1)+........+(1-Ak)*2^0=1*2^(k-1)+.....+1*2^0-[A1*2^(k-1)+......+Ak*2^0]=2^k-1-B         注:{1*2^(k-1)+.....+1*2^0有数列求和可知=2^k-1  }

2^k-1为这个数的补码,所以再加上1之后则有原式为2^k-B,而2^k-B即为这个数的补码.
得证一个数的反码加一为这个数的补码
``(无脑引用E=mc2)
(Markdown语言证明)
设某个K位二进制数为A1A2......Ak,

 则将其化为十进制为$A_1\times2^{(k-1)}+......+A_k\times2^0$,令其等于X; 这个K位二进制的反码为$(1-A_1).....(1-A_K)$, 将其反码转化为十进制为$(1-A_1)\times2^{(k-1)}+....+(1-A_k)\times2^0$,令其等于Y; 则Y=$1\times2^{(k-1)}+......+1\times2^0-[A_1\times2^{(k-1)}+......+A_k\times2^0]$=$2^k-1-X$ \therefore$Y+1=$2^k-X$ 令Y+1+X=Z,Z即为$2^k$,$\therefore$,当k=8时将Z化为二进制为0  即证明二进制的负数等于它的求反加1

转义序列的含义与符号说明.

这里写图片描述(转自百度百科)

3.眺远方,挥斥方遒;

忆往昔我们心肠澎湃,看今朝我们整装待发,眺远方我们挥斥方遒。
在中大这四年,“为梦前行生生不息”是己任,“惟愿诸君将振兴中华之责任,置之于自身之肩上”更是我一生不懈 的执着追求。



  1. 关于IEEE的更多资料http://baike.baidu.com/link?url=QCmZROfDAMfTg-tCiTns5_oU3lrmPe3d8Qgtope1dwUF2ZuD9BfCGQmNBr7hptXbrLdlKl8SPdpeZLhbDeyIv8GMvOHM5OJANHs5XtHblXk_r3h_Cr1HY51Mfjsr4xvgYwePZZMUXIlP9rz7qj4l5vsf2So734Gqi6qKWH3XoIN7tlm0jzQcmxKzBIEc256H_aEVia46s8kjxyK12pR9eauXZJUp1F6IHzuCATQpoNXw6uLyfrXjTzZSN5jGCqbO) ↩
6 0
原创粉丝点击