浮点数

浮点数精确计算测试类

十年热恋 提交于 2019-12-23 06:48:37
package demo.mytest; import java.math.BigDecimal; /** * 浮点数的精确计算... * @author Administrator * */ public class Arith { //默认除法运算精度 private static final int DEF_DIV_SCALE = 10; //这个类不能实例化 private Arith(){ } /** * 提供精确的加法运算。 * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ public static double add(double v1,double v2){ BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.add(b2).doubleValue(); } /** * 提供精确的减法运算。 * @param v1 被减数 * @param v2 减数 * @return 两个参数的差 */ public static double sub(double v1,double v2){ BigDecimal b1 = new

random(随机模块)

本秂侑毒 提交于 2019-12-23 06:48:16
什么是random random是Python中内置的一个库,该库是随机产生数值的库 random.sample(pop,k) 作用:从pop类型中随机选取k个元素,以列表类型返回 pop:序列类型,例如列表类型 k:选取的个数,整数 random.shuiffle(seq) 作用:将序列类型seq中元素随机排序,返回打乱后的序列 调用该函数后,序列类型变量seq将被改变 返回的结果为列表类型 random.choice(seq) 作用:从序列类型(例如列表)seq中随机返回一个元素 seq:序列类型,例如列表类型 返回的结果为随机列表里的值 random.uniform(a,b) 作用:生成一个[a,b]之间的随机小数 a:随机区间的开始值,整数或浮点数 b:随机区间的结束值,随机数包含结束值,整数或浮点数 random.randint(a,b) 作用:生成一个[a,b]之间的随机整数 参数:a,随机区间的开始值,整数,b,随机区间的结束值,整数。 注意:这里的random.randint中的a和b值都是开的原则,包含a,b的值 random.randrange(start,stop[,step]) 作用:生成一个[start,stop)之间以step为步数的随机整数 start:随机区间的开始值,整数 stop:随机区间的结束值,随机数包含结束值,整数 step

常用输入输出函数

有些话、适合烂在心里 提交于 2019-12-23 02:19:23
格式化输出函数 一、 printf("格式控制",输出列表)。 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出,例如printf(“风雨兼程\n”); 另一部分是格式化规定字符, 以”%”开始, 后跟一个或几个规定字符,用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出 参数个数一样多, 各参数之间用“,”分开, 且顺序一一对应, 否则将会出现意想 不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 说明: (1). 可以在“%”和字母之间插进数字表示最大场宽。 例如: %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 (2). 可以在“%”和字母之间加小写字母l, 表示输出的是长型数。 例如: %ld 表示输出long整数 %lf 表示输出double浮点数。 (3). 可以控制输出左对齐或右对齐, 即在“%”和字母之间加入一个”-” 号可

js正则表达式

无人久伴 提交于 2019-12-22 21:31:43
正则表达式的规则 一个具有特殊意义的字符串。 正则表达式在多种语言中都可以使用, ​ 如:在 Java 中可以用正则表达式,在JavaScript 中也可以使用正则表达式。 \d 数字 \D 非数字 \w 单词:a-zA-Z0-9_ //注意包括下划线 \W 非单词 . 通配符,匹配任意字符 {n} 匹配 n 次 {n,} 大于或等于 n 次 {n,m} 在 n 和 m 之间 + 1~n 次 * 0~n 次 ? 0~1 次 ^ 匹配开头 $ 匹配结尾 ​ [13579] 匹配 1 或 3 或 5 或 7 或 9,即这 5 个数字之一 [0-9] 匹配 1 到 9,即 0,1,2,3,4,5,6,7,8,9 中的数字之一 正则表达式的创建方式 方式一 var reg = new RegExp("正则表达式"); 说明:正则表达式在 JS 中是一个对象。Regular Expression。 ​ 方式二 var reg = /正则表达式/; 说明:以/开头,以/结尾,中间是正则表达式。 ​ //两种方式的区别 1_在 JS 中,正则表达式的两种声明方式对于“\d、\D”之类的匹配模式中, 方式一:需要转义;如:new RegExp(“\\d”) 方式二:无需转义。如:/\d/ 2_方式一: 支持字符串拼接,支持变量,更加灵活;如:new RegExp(“\\d”+变量) ​ 方式二:

Objective-c常用的函数

倖福魔咒の 提交于 2019-12-22 11:43:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 来自:http://blog.sina.com.cn/s/blog_71715bf80101bnvn.html 介绍一下Objective-c常用的函数,常数变量 算术函数 【算术函数】 函数名 说明 int rand() 随机数生成。 (例) srand(time(nil)); //随机数初期化 int val = rand()P; //0~49之间的随机数 int abs(int a) 整数的绝对值 (例)int val = abs(-8);  →8 ※浮点数的时候用fabs。 double fabs(double a) 浮点数的绝对值 (例)double val = fabs(-12.345);  →12.345 ※整数的时候用abs。 double floor(double a) 返回浮点数整数部分(舍弃小数点) (例)double val = floor(12.345);  →12.000 double ceil(double a); 返回浮点数整数部分(舍弃小数点部分,往个位数进1) (例)double val = ceil(12.345);  →13.000 double pow(double a, double b) a的b次方 (例)double val = pow(2, 3);  →8

用二进制表示的数

别等时光非礼了梦想. 提交于 2019-12-22 05:11:41
   计算机中的数,是用 定点数 和 浮点数 表示。    定点数 :小数点位置固定的数, 整数和纯小数 是用定点数来表示的,分别称为定点整数和定点纯小数。    浮点数 :对于 既有整数部分、又有小数部分 的数,一般用浮点数表示,浮点数的小数点位置是不固定的,可以浮动。     如:234,4563,0.433 0.32134 等是定点数 而 454.32 234.5466等是浮点数。    对于定点型整数,小数点的位置默认在数值最低位的右边。计算机能表示的定点整型数的大小范围并不是任意的,它与计算机本身的字长有关,还与程序语言的实现环境有关。 45 .   对于定点纯小数,小数点的位置固定在符号位与最高数值位之间。显然,定点纯小数所能表示数的范围较小,并不能满足实际问题的需要。定点纯小数的 精度 与计算机本身的字长有关,与程序语言的实现环境有关。    ※ 在大多数计算机中,存储浮点数时,都会把浮点数转换成两个部分:整数部分和纯小数部分。     整型数的二进制表示 :对于整型数而言,又分为有符号和无符号的两种,有符号的整型数既可以是正数,又可以是负数,正负号由字节的最高位来表示,0表示正数,1表示负数。   🎵 有符号的二进制数      1.一个字节表示的数       如: 1 011 0100 其最高位的1为符号位,因此(1011 0100)的 十进制数 为:-(2^5

计算机组成原理(科学出版社) 第二章:运算方法和运算器

强颜欢笑 提交于 2019-12-21 21:05:22
复习 20190630 一、 原码、补码、反码、移码 真值(十进制数) 转换为真值(二进制数)最好补全为八位,对应的原码就是将最高位写成符号位(还是八位) 具体思维导图如下: 原码求补码的简便方法:除符号位之外,从最低位开始,遇第一个1之前的各位保持不变,其余各位按位取反 进制之间的转换,思维导图如下: 二、补码加减法 补码加法公式:[X]补 + [Y]补 = [X+Y]补 ( mod 2n+1) 定理: 任意两数补码之和等于该两数之和的补码 2. 补码的乘法和除法就是将[X]的补码向左或者右移位一次,符号位移走之后照原来的补上, 这就是算术移位。 算术移位: 由[X]补求[X/2]补 — [X]补 = 10101000 — [X/2]补 = 1 1010100 0 3. 补码的减法公式:[X — Y]补 = [X]补 — [Y]补 = [X]补 + [—Y]补 又知道,[—Y]补 等于[Y]补 取反,末位加1,所以可化为加法运算 4. 注意检测溢出,单双符号位 三、 定点运算器 1. 逻辑运算 (1). 逻辑非 逻辑非又叫求反,按位取反 (2). 逻辑加 逻辑加又叫逻辑或,常用+来表示 (3). 逻辑乘 逻辑乘又叫逻辑与,常用 。来表示 (4). 逻辑异 对两数进行逻辑异就是按位求他们的模2和,所以逻辑异又称为按位加,常用记号 来表示 2. 多功能算术/逻辑运算单元ALU (1)

基本数据类型的转换

核能气质少年 提交于 2019-12-21 17:00:19
Java类Demo中存在方法func0、func1、func2、func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{   float func0()   {     byte i=1;     return i;   }   float func1()   {     int i=1;     return;   }   float func2()   {     short i=2;     return i;   }   float func3()   {     long i=3;     return i;   }   float func4()   {     double i=4;     return i;   } } func1 func2 func3 func4 这道题考的是数据类型转换问题。由大到小需要强制转换,由小到大不需要。 A:return; 没有返回值,错误 B:short → float 无须强制转换,正确 C:long → float 无须强制转换(这个最选项容易出错),正确。 float占4个字节为什么比long占8个字节大呢,因为底层的实现方式不同。 浮点数的32位并不是简单直接表示大小,而是按照一定标准分配的。 第1位,符号位,即S 接下来8位,指数域,即E。 剩下23位,小数域,即M

Java基础-数据类型和包装类

 ̄綄美尐妖づ 提交于 2019-12-21 07:03:50
数据类型 分为基本数据类型和引用数据类型 基本数据类型变量存储的就是数据本身,引用数据类型的变量是保存数据的空间地址 四种基本数据类型: 逻辑型 boolean 文本型 char 整数型 byte short int long 浮点数型 float double 取值范围: 最高位为符号位为0为正 1为负 计算机存储的是补码 正数的补码为原码 负数的补码为原码的反码+1 反码和补码计算数值也需要转换成原码 byte: byte 数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是 -128(-2^7); 最大值是 127(2^7-1); 默认值是 0; byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一; 例子:byte a = 100,byte b = -50。 short: short 数据类型是 16 位、有符号的以二进制补码表示的整数 最小值是 -32768(-2^15); 最大值是 32767(2^15 - 1); Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一; 默认值是 0; 例子:short s = 1000,short r = -20000。 int: int 数据类型是32位、有符号的以二进制补码表示的整数; 最小值是 -2,147

常用正则表达式

孤者浪人 提交于 2019-12-21 01:15:48
正则式写法规则 正则表达式中有很多上述的具有特别意义的字符。首先是下列字符。 [ ] 范围描述符。[a-z]表示从a到z之间的任意一个。 \w 英文字母和数字。即[0-9 A-Z a-z]。 \W 非英文字母和数字 \s 空字符,即[\t\n\r\f]。 \S 非空字符。 \d 数字,即[0-9]。 \D 非数字。 \b 词边界字符(在范围描述符外部时) \B 非词边界字符 \b 退格符(0x08)(在范围描述符内部时) * 前面元素出现0次以上 + 前面元素出现1次以上 {m,n} 前面元素最少出现m次,最多出现n次 ? 前面元素出现0次或1次 | 选择 ( ) 群组 其他字符 该字符本身 常用正则式 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 匹配首尾空格的正则表达式:(^\s*)|(\s*$) 匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g // 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 匹配网址URL的正则表达式: http://(/ [\w-]+\.)+[