分类 默认分类 下的文章
此内容被密码保护
机器码的写法
机器码一共有4种分别为原码、反码、补码、移码(增码) 原码:
原码是由符号位(正为1;负为0)再真值组成的。例如-3的8位原码的求法为:
-3的符号位是-,在二进制中表示为1,再利用短除法求出3的二进制11,结合后为1000 0011。
其优点是简单易手写,缺点是机器需要单独设立加法器和减法器,0还有+0(0000 0000)和(1000 0000)两种形式。
反码: 反码分两种情况正数的情况下与原码相同,负数为把原码除符号位按位取反。还是拿-3举例: -3是负数,依照以上规则需要把除符号位按位取反得到(1111 1111)。 其优点是可以直接连符号加减,简化机器,但还是没有解决0有符号。
补码: 补码也分两种情况正数的情况下与反码相同,负数为把反码加1。我们拿-2举例: -2是负数,依照以上规则需要加1得到(1111 1111)。 其优点是可以解决0的符号,但美中不足的是-128在补码里是(1000 0000)也就是反码的-0,这是一个小瑕疵。
移码: 移码是将补码的符号位取反。还是拿-2举例: 依照以上规则需要把符号位按位取反得到(0111 1111)。 解决了补码的瑕疵。
浮点数和实数的精度范围
浮点数的表示格式
浮点数通常由三部分组成:符号位、指数位、和小数位。在IEEE754标准中,这通常表现为32位(单精度)或64位(双精度)的格式。
- 符号位: 1位,用于表示正负。
- 指数位: 可变位数,用于表示数值的范围。
- 小数位: 也是可变位数,用于表示数值的精度。
浮点数精度范围
单精度浮点数(32位)
- 可表示的最小值: 约$2^{-23}\times1.7549437e^{-38}$
- 可表示的最大值: 约$2^{23}\times3.402823585e^{38}$
- 精度: 大约6-7位有效数字。
双精度浮点数(64位)
- 可表示的最小值: 约$2^{-52}\times1.7549437e^{-38}$
- 可表示的最大值: 约$2^{52}\times3.402823585e^{38}$
- 精度: 大约15-16位有效数字。
实属的范围和精度
实属包括有理数和无理数,他们在计算机中的表示通常通过浮点数来实现。然而,由于浮点数的表示方式,某些实属可能无法被精确表示。
- 非规格化数(subnormal): 如果指数位全为0,而尾数不全为0,而尾数位不全为0,则表示为非规格化数,这是一个非常小的数。
- 无穷大: 指数位全为1时,表示的是无穷大。
- NaN(Not a Number): 当指数位不全为0或全为1,且尾数位不全为0时,表示的是不是一个数字。
精度和误差
由于浮点数的表示是基于有限的二进制位数,因此存在量化误差。这种误差在计算中是不可避免的,尤其是在进行高精度计算时。例如,两个具有非常接近值的浮点数相加可能会导致结果略有偏差。 总之,浮点数提供了一种在计算机中表示实属的有效方式,但同时也伴随着精度和范围的限制。在处理需要极高精度的科学计算或工程应用时,可能需要采用其他数值计算技术,如复数或高精度。
测试Markdown & Mathjax & 图片COS
组合数问题
题目背景
给定正整数 $n,m$,求在 $n$ 个本质不同的物体中选取 $m$ 个时,有多少种本质不同的方案。
题目描述
形式化地讲,给定正整数 $n,m(1\leq n,m\leq 2000)$ ,求
$$ \mathrm{C}_{n}^m $$也即
$$ \binom{n}{m} $$需要注意的是,本题所有运算都在模 $998,244,353$ 下进行。
输入格式
第 $1$ 行一个正整数 $T$ ,表示数据组数。
第 $2\sim T+1$ 行,每行有两个整数 $n,m$,含义如题目描述中所示。
输出格式
共 $T$ 行,每行一个整数表示答案。
样例 #1
样例输入 #1
3
5 3
4 2
10 7
样例输出 #1
10
6
120
提示
对于 $100%$ 的数据,满足 $1\leq T\leq 10^5,1\leq n, m\leq 2000$。
需要注意以下两点:
-
鉴于效率较低,本题不能使用
iostream
里的cin/cout
输出流。 -
不保证数据满足 $m\leq n$ 。