浮点数

计算机中定点数表示方法练习

心不动则不痛 提交于 2020-02-27 13:26:30
1【单选题】针对8位二进制数,下列说法中正确的是 。(5.0分) A、-127的补码为10000000 B、-127的反码等于0的移码 C、+1的移码等于-127的反码 D、0的补码等于-1的反码 正确答案: B 2【单选题】若某数x的真值为-0.1010,在计算机中该数表示为1.0110, 则该数所用的编码方法为 码。(5.0分) A、原 B、补 C、反 D、移 正确答案: B 3【单选题】已知定点整数x的原码为1xn-1,xn-2,xn-3,…x0,且,则必有 。(5.0分) A、 B、 C、 D、 正确答案: A 4【单选题】已知定点小数x的反码为1,x1,x2,x3,且,则必有 。(5.0分) A、 B、 C、 D、 正确答案: D 5【单选题】 在整数定点机中,下述第______种说法是正确的­。(5.0分) A、原码和反码不能表示 -1,补码可以表示 -1; B、三种机器数均可表示 -1; C、三种机器数均可表示 -1,且三种机器数的表示范围相同; D、三种机器数均不可表示 -1。 正确答案: B 6【单选题】在下列机器数_____中,零的表示形式是唯一的。(5.0分) A、原码 B、补码 C、反码 D、原码和反码 正确答案: B 7【单选题】下列数中最小的数是______。(5.0分) A、(1101001)2 B、(52)8 C、(133)8 D、(30)16

关于 float的四舍五入问题

与世无争的帅哥 提交于 2020-02-27 03:04:57
3.55 can't be represented exactly in floating point. The internal value is something like 3.54999999999 , which rounds to 3.5 首先要明白浮点数在计算机中都绝大多数是近似 值。其实C++对浮点数是自动四舍五入的,而且是非常严格地下一位为5则入,小于5则不入。这在double型时一般是没有问题的。在float型时,因精度低,内存中的近似值可能刚好使决定四舍五入的那一位的5不足额,造成不能四舍五入。例如float x=3.1415;,实际上内存中的二进制换算过来是3.14149999999999.. .;,这样取3位小数后就成了3.141而不是3.142了;如果换成double型,立马就变成3.142了。可以这样解决就保险了:float型的有效位是6位左右,给要输出的变量加一个1E-6 ,四舍五入的问题就解决了。 来源: https://www.cnblogs.com/hulian425/p/12370204.html

java基础

谁说胖子不能爱 提交于 2020-02-26 18:47:07
public class Demo02 { public static void main ( String [ ] args ) { // 整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x int i = 11 ; int i2 = 045 ; //八进制 int i3 = 0x21 ; // 十六进制0x 0-9 A-F System . out . println ( i ) ; System . out . println ( i2 ) ; System . out . println ( i3 ) ; System . out . println ( "===================" ) ; // 浮点数 银行业务怎么表示? // fLoat doubLe 浮点数会四舍五入 会接近但不等于结果 // 最好完全避免使用浮点数比较 float f = 0.1F ; double d = 1.0 / 10 ; System . out . println ( f == d ) ; System . out . println ( f ) ; System . out . println ( d ) ; System . out . println ( "=============" ) ; char a = 'a' ; char a2 = '中' ;

python——正则匹配数字

亡梦爱人 提交于 2020-02-26 16:42:21
原文: https://www.cnblogs.com/so-letitgo/p/10552415.html 一 案例 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 非负整数:^\d+$ 或 ^[1-9]\d*|0$ 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1

进行浮动和双重比较的最有效方法是什么?

≯℡__Kan透↙ 提交于 2020-02-26 14:32:09
比较两个 double 或两个 float 值的最有效方法是什么? 简单地这样做是不正确的: bool CompareDoubles1 (double A, double B) { return A == B; } 但是类似: bool CompareDoubles2 (double A, double B) { diff = A - B; return (diff < EPSILON) && (-diff < EPSILON); } 似乎是废物处理。 有人知道更聪明的浮点比较器吗? #1楼 实际上,在数字软件中,您需要检查两个浮点数是否 完全 相等。 我在类似的问题上发布了 https://stackoverflow.com/a/10973098/1447411 因此,您不能说“ CompareDoubles1”通常是错误的。 #2楼 意识到这是一个古老的话题,但是本文是我发现的比较浮点数最直接的文章之一,如果您想探索更多,它也提供了更详细的参考,并且主要站点涵盖了所有问题处理浮点数 《浮点指南:比较》 。 我们可以在“ 浮点公差 ”中找到一些更实用的文章,并注意到存在 绝对公差 测试,在C ++中可以归结为: bool absoluteToleranceCompare(double x, double y) { return std::fabs(x - y) <= std:

js正则

守給你的承諾、 提交于 2020-02-26 07:27:43
js正则 首先我们要了解什么是正则表达式? 正则表达式是构成搜索模式(search pattern)的字符序列。 当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容。 正则表达式可以是单字符,或者更复杂的模式。 正则表达式可用于执行所有类型的文本搜索和文本替换操作。 创建一个正则 1、通过new创建正则 var num = new RegExp("hello", "ig"); 2、省略new创建正则 var num = RegExp("hello", "ig"); 3、正则常量赋值 var eg = /hello/ig; 正则可以传入两个参数: 1、正则主体部分,一般情况下就是字符串 2、 修饰符 (没有先后顺序) i 忽略大小写 g 全局匹配 m 换行匹配 正则表达式的常用方法 1.test 语法:正则.test(字符串); 功能:在字符串中匹配正则是否存在 返回值:如果存在返回true 如果不存在就返回false var str = "how aRe you"; var num = /are/i; //匹配are忽略大小写 alert(num.test(str)); //返回true 2.exec 格式:正则.exec(字符串) 功能:在字符串中匹配正则是否存在 返回值:如果存在返回一个数组,数组里面存放着匹配的内容.如果不存在,返回null alert(num

NOI 1.1-07

▼魔方 西西 提交于 2020-02-26 01:59:31
07:输出浮点数 总时间限制:1000ms 内存限制:65536kB 描述 读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。 输入 一个双精度浮点数。 输出 输出有四行: 第一行是按“%f”输出的双精度浮点数; 第二行是按“%f”保留5位小数输出的双精度浮点数; 第三行是按“%e”输出的双精度浮点数; 第四行是按“%g”输出的双精度浮点数。 样例输入 12.3456789 样例输出 12.345679 12.34568 1.234568e+001 12.3457 来源 习题(2.5) 参考代码: # include <bits/stdc++.h> using namespace std ; int main ( ) { double m ; scanf ( "%lf" , & m ) ; printf ( "%lf\n" , m ) ; printf ( "%.5lf\n" , m ) ; printf ( "%e\n" , m ) ; printf ( "%g\n" , m ) ; return 0 ; } 来源: CSDN 作者: Szz2020 链接: https://blog.csdn.net/Szz2020/article/details/104503260

NOI 1.1-06

那年仲夏 提交于 2020-02-25 20:09:23
06:空格分隔输出 总时间限制: 1000ms 内存限制: 65536kB 描述 读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。 输入 共有四行: 第一行是一个字符; 第二行是一个整数; 第三行是一个单精度浮点数; 第四行是一个双精度浮点数。 输出 输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。 样例输入 a 12 2.3 3.2 样例输出 a 12 2.300000 3.200000 来源 习题(2-4) 参考代码: # include <bits/stdc++.h> using namespace std ; int main ( ) { char a ; int b ; float c ; double d ; scanf ( "%c%d%f%lf" , & a , & b , & c , & d ) ; printf ( "%c %d %.6f %.6f" , a , b , c , d ) ; return 0 ; } 来源: CSDN 作者: Szz2020 链接: https://blog.csdn.net/Szz2020/article/details/104503197

浮点数在计算机内存中的存储方式

大城市里の小女人 提交于 2020-02-25 12:01:00
查阅了一个小时,终于找到一篇讲解地清晰明了的。 提炼一下在做浮点数转化到计算机内存中存储编码过程中需要注意的点: 1.浮点数存储时分为三个部分:符号位、指数位、尾数位 2.指数位 = e+127(float) 3.由于二进制的科学计数法,第一位必然为1,因此省略,尾数位直接从小数点后写起。 https://blog.csdn.net/youmeichifan/article/details/80775360 来源: CSDN 作者: 只有我一个人想笑吗 链接: https://blog.csdn.net/qq_38803651/article/details/104491033

java基础 数据类型

久未见 提交于 2020-02-25 01:55:01
Java八种基本数据类型 1)四种整数类型(byte、short、int、long): byte:8 位,用于表示最小数据单位,如文件中数据,-128~127 short:16 位,很少用,-32768 ~ 32767 int:32 位、最常用,-2^31-1~2^31 (21 亿) long:64 位、次常用 注意事项: int i=5; // 5 叫直接量(或字面量),即 直接写出的常数。 整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l。 小于 32 位数的变量,都按 int 结果计算。 强转符比数学运算符优先级高。见常量与变量中的例子。 2)两种浮点数类型(float、double): float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。 double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾 注意事项: 二 进 制 浮 点 数 : 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方) 尾数: . 1010100010 指数:1010 基数:2 浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加F 或 f