指数(乘方、幂、科学计数法)、对数、等比数列、阶乘基础知识

指数(乘方、幂、科学计数法)、对数、等比数列、阶乘基础知识指数科学计数法 将一个数计作 a 10 n 计算机中表示为 aEn 其中 1 a 10

大家好,欢迎来到IT知识分享网。

指数

指数、幂:乘方、次方。a的n次方,a的n次幂,a^n。数学计算为n自乘m次。其中n称作底数,m称作指数。

n^0= 1;     n^1=1*n;     n^2=1*n*n

科学计数法:a*(10^n),aEn。将一个比较大的数,计作一个自然数a乘以10的n次幂,其中1<=|a|<10。科学计数法,使得阅读更直观,避免出错。

因为十的乘方很容易计算,只需在后面加零即可,因此科学计数法借助此简化记录数的方式。在计算机中,二的乘方很有用。

对数

如果a^X=N,那么x就是以a为底,N的对数。计作log(a)N,其中a为底数,N为真数。

以10为底的对数,叫做常用对数(common logathimath),log(10)N 即 lgN。

以无理数e为底的对数,叫做自然对数(natrual logarithm),log(e)N即lnN。

e:我们都知道复利计息是怎么回事,就是利息也可以并进本金再生利息。但是本利和的多寡,要看计息周期而定,以年周期来算的话,可以一年只计息一次,也可以每半年计息一次,或者一季一次,一月一次,甚至一天一次;当然计息周期愈短,本利和就会愈高。有人因此而好奇,如果计息周期无限制地缩短,比如说每分钟计息一次,甚至每秒,或者每一瞬间(理论上来说),会发生什么状况?本利和会无限制地加大吗?答案是不会,本利和的值会稳定下来,趋近於一极限值,而e这个数就现身在该极限值当中,所以e可以定义成一个极限值,但是在那时候,根本还没有极限的观念,因此e的值应该是观察出来的,而不是用严谨的证明得到的。

当n→∞时,(1+1/n)^n的极限就是e

阶乘

从1乘到n,称为n的阶乘。计作 n! = 1*2*3*…*(n-1)*n。

n! = (n-1)! * n;

等比数列

an = a * q^(n-1)

sn = a * (q^n – 1) / (q-1)

例如:数列,2^0  2^1  2^2  2^3 ….  2^(n-1),

          即为 q = 2, a = 1的等比数列,其sn=2^n -1;

 

 

十六进制

在数学中是逢16进1的进位制,用0-9和A-F表示,这些数字称作16进制数字。

十进制数57,二进制数为,十六进制数为39。

16进制普遍应用在计算机领域,因为将4个bit化成16进制的数比较容易。

Unicode字符集及其编码实现

Unicode用数字 0x0~0x10FFFF 表示所有字符,所以最多可以容纳 1,114,112 个字符。

有人会说,Unicode不是两个字节表示字符的码?为什么数值可以到0x10FFFF,这不21位,两个半字节还多了吗?其实,这是混淆了Unicode的数值定义和实现,这根本就是两个概念,Unicode到底用几个字节表示,取决于其实现方式是UTF-8,UTF-16,还是UTF-32.

  比如,“汉字”对应的Unicode值是0x6c49和0x5b57,而编码实现是:

char data_utf8[]={0xE6,0xB1,0x89,0xE5,0xAD,0x97};//UTF-8编码
char16_t data_utf16[]={0x6C49,0x5B57};        //UTF-16编码
char32_t data_utf32[]={0x00006C49,0x00005B57};//UTF-32编码

UTF-8是使用8-bit为单位,对Unicode进行编码的。特点是,对不同范围的字符使用不同长度的编码。

Unicode编码(十六进制) 
UTF-8 字节流(二进制)
00000000 – 0000007F
0xxxxxxx
00000080 – 000007FF
110xxxxx 10xxxxxx
00000800 – 0000FFFF
1110xxxx 10xxxxxx 10xxxxxx
00010000 – 001FFFFF
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
00 – 03FFFFFF xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0 – 7FFFFFFF x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

 

  UTF-8编码的最大长度是6个字节。

  对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同,用1个字节表示,首位为0。

  对于0x80-0x7FF之间的字符,用2个字节表示,第一个字节前三位“110”为标志位,第二个字节前两位“10”为标志位。剩下的11位用来表示Unicode值(7FF最多11位)。

  同样,UTF-8的3个字节,可以表示0x800-0xFFFF的Unicode(最多16位)。

  UTF-8的4个字节,可以表示0x10000-0x001FFFFF的Unicode(最多21位)。

  4个字节以内,已经包含了Unicode所有字符。

  5、6个字节表示的已经是非Unicode编码范围,属于UCS-4 编码。早期UTF-8规范也可以达到6字节序列,不过2003年11月UTF-8 被 RFC 3629 重新规范,只能使用原来Unicode定义的区域, U+0000到U+10FFFF。根据规范,这些字节值将无法出现在合法 UTF-8序列中。

  例1:“汉”字的Unicode编码是0x6C49。0x6C49在0x0800-0xFFFF之间,使用用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将0x6C49写成二进制是:0110 1100 0100 1001, 用这个比特流依次代替模板中的x,得到: ,即E6 B1 89。
  例2:Unicode编码0x20C30在0x010000-0x10FFFF之间,使用用4字节模板了:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx。将0x20C30写成21位二进制数字(不足21位就在前面补0):0 0010 0000 1100 0011 0000,用这个比特流依次代替模板中的x,得到: ,即F0 A0 B0 B0。

  UTF-8有两个好处:

1. 1字节字符、2字节字符、3字节字符……的首字节标志位不同,这样可以很清楚的区分一个字节属于1字节字符还是2字节字符,如果一个字节流传输中出现错误,也不会错位,只影响部分字符,根据标志位,很容易找到下个正确字符。

2. 兼容ASCII码,英美字符用UTF-8可以一个字节表示,所以,www组织选用UTF-8作为推荐编码格式。2007年,在互联网上,UTF-8格式已经超过了ASCII码。

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/152949.html

(0)
上一篇 2024-11-27 11:26
下一篇 2024-11-27 11:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信