Changed some grammatical issues (#23574)

* Changed some grammatical issues

* Finished fixing the document's grammatical error
This commit is contained in:
Lorna Lan
2019-04-08 19:15:52 -04:00
committed by Jingyi Ding
parent c4b1621825
commit 4b455673e0

View File

@ -2,9 +2,9 @@
title: More math
localeTitle: 更多数学
---
# C中的数学更多
# C中的更多数学
好的所以你已经看过了基础知识。不过在C中还有更多,所以这里有一个看看
好的所以你已经看过了基础知识。不过在C中还有更多数学运算符,所以这里我们继续列举几个常用的
## 运营顺序
@ -12,7 +12,7 @@ localeTitle: 更多数学
> 1 +3-2\* 5
如果我们只是从左到右阅读和计算我们将取1加3减2乘以5得到10.然而这忽略了操作的顺序。我们应该先做3-2得到1然后乘以5再加1.这给出了6的答案。
如果我们只是从左到右阅读和计算我们将取1加3减2乘以5得到10然而这忽略了操作的顺序。我们应该先做3-2得到1然后乘以5再加1.这给出了6的答案。
就像常规数学一样C有一个操作顺序。操作具有优先权如果一个操作的优先级高于另一个操作则首先计算优先级越高。使用括号可以增加该优先级就像在普通数学中一样。
@ -26,13 +26,13 @@ localeTitle: 更多数学
```C
1: a++;
2: ++a;
2: ++a;
3: a--;
4: --a;
3: a--;
4: --a;
```
1和2处的示例都将a的值增加1。 3和4处的两个示例都将a的值减小1。但是1与2不完全相同3与4不完全相同。预修复运算符称为此,因为操作是前缀2和4是我们的前缀运算符。这与我们在1和3的后修复操作符略有不同。预修复操作符执行操作,然后返回值。修复操作符返回值,然后执行增量。
1和2处的示例都将a的值增加1。 3和4处的两个示例都将a的值减小1。但是1与2不完全相同3与4不完全相同。2和4中的运算符 ++ 叫预修复运算符,因为符号是前缀,在变量前被读取。这与我们在1和3的后修复操作符略有不同。预修复操作符执行操作,然后再更新变量值。修复操作符返回值,然后执行增量。
### 一元加减
@ -49,25 +49,25 @@ int number = -3;
## 按位运算
因为C是如前所述的低级别所以您可以访问各个二进制位如果您选择利用它。内置了一些二进制操作我们这样做。对于这些示例,我们将使用`a``b`作为变量。它们可以是任何类型的变量,因为所有变量都将以位表示,因此确切的数据类型对于这些变量无关紧要。
因为C是如前所述的低级别语言,所以您可以使用C访问各个二进制位(如果您选择利用它)。C中内置了一些二进制操作给予了我们这样做的能力。对于这些示例,我们将使用`a``b`作为变量。它们可以是任何类型的变量,因为所有变量都将以位表示,因此确切的数据类型对于这些变量无关紧要。
### 和
`c = a & b;`将执行按位AND。这意味着如果`a`的第一位和`b`的第一位都是1则c的第一位将为1否则为0。如果`a``b`的第二位都是1则c的第二位将为1否则为0。这种情况一直持续到所有比特都被用完为止。
`c = a & b;`将执行按位AND。这意味着如果`a`的第一位和`b`的第一位都是1则c的第一位将为1否则为0。如果`a``b`的第二位都是1则c的第二位将为1否则为0。这种情况一直持续到所有比特都被读取过为止。
### 要么
###
`c = a | b;`将执行按位OR。的第一比特`c`是1如果在任一第一比特`a``b`是1第二位是1如果在任一所述第二位`a``b`是1此类推。
`c = a | b;将执行按位OR。如果`c`的第一比特是1如果在任一`a`或`b`的第一比特是1如果`a``b`的第一比特都是0那么`c`的第一比特就是0。第二位、第三位如此类推。
###
###
`b = ~a;`将设置`b`到的一个补`a` 这意味着任何1变成0和0的任何一个变为1。
`b = ~a;`将设置`b`到的一个补`a` ,这意味着`a`的任意一位是`b`的互补数;`a`的某个位置上的1会变成`b`相应位置上的0而0会变成1。
### XOR
### 异或
`c = a ^ b;`将执行按位异或。这是一个异或,意味着如果`a``b`为1`c`的第一位为1但不是两者。如果其中一个为1但不是两个则第二个位为1依此类推。
`c = a ^ b;`将执行按位异或。这意味着如果`a`的第一位或`b`的第一位为1则`c`的第一位为1但`a`和`b`不能同时为1。如果`a`和`b`的某个位置同时为1或0那么`c`的相应位置会是0。依此类推。
###
###
按位移位将取位并将它们移动到左侧或右侧的某些位置。例如,假设我们有一组位: `101110` 。当位移时C执行算术移位。让我们用一张表来说明一点
@ -99,29 +99,29 @@ c = a >> b;
## 复合赋值运算符
有时您希望将变量增加一定值。可以这样做:
有时您希望将变量增加一定值。在C中可以这样做:
```C
a = a + b;
```
但是,这就是复合赋值运算符的用途。相反,你可以写这个,它完全相同
但是,这样的写法不够简练。这时,复合赋值运算符就派上了它的用场。以上的算法可以用复合赋值运算符更精炼地表达,如下所示
```C
a += b;
```
对于许多其他运营商也存在这种情况。这是一个方便的桌子给你
对于许多其他运也存在这种情况。以下是给您的一个汇总表格
短路|漫长的道路 --------------|------------ `a += b` | `a = a + b` `a -= b` | `a = a - b` `a *= b` | `a = a * b` `a /= b` | `a = a / b` `a %= b` | `a = a % b` `a &= b` | `a = a & b` `a ^= b` | `a = a ^ b` `a <<= b` | `a = a << b` `a >>= b` | `a = a >> b`
还有`|=` ,因为`|`而不在表上角色打破了桌子。但它确实像所有这些其他操作一样。
还有`|=` ,因为`|`会破坏桌子的格式,但它确实像所有这些其他操作一样,也是一种合理的运算
## 铸件
## 铸件 (typecasting)
有时你不希望数字是一个数字,或者你想要一个整数浮点数,或类似的东西。这就是铸造的目的。
有时你不希望变量是一个数字,或者你想要一个整数变成浮点数,或类似的东西。这就是铸造的目的。
正如您从整数除法的讨论中回忆的那样,下面的示例将给出一个没有任何小数的整数值,因为进入的两个数字都是整数
正如您从整数除法的讨论中回忆的那样,下面的示例的输入都是整数值但它们的商是非整数而C的printf语句只接受某种特定的变量类型所以我们需要将它们的商转化成整数类型才能被显示出来
```C
#include <stdio.h>
@ -130,11 +130,13 @@ a += b;
int a = 12;
int b = 5;
printf("a divided by b is %i", a/b);
printf("a divided by b is %i", (int) a / b);
}
```
但是,使用铸造,我们可以使用铸造将它们变成浮子。这允许将它们划分为浮点数,并且等式将返回浮点值:
其printf语句中的%i代表整数类型(int) 这个操作就是铸件。铸件可以转换变量类型。
如果您想将a和b的商这个数字更准确地显示到屏幕上你可以将这个商变成浮点数
```C
#include <stdio.h>
@ -147,38 +149,39 @@ a += b;
}
```
现在它是一个浮点数12除以5所以这将返回一个浮点数该数字在小数位后不会截断
现在它是一个浮点数注意这里printf语句中的预留位是%f是为浮点数准备的。所以这里将显示商为浮点数该数字会保留一定的小数位数
要将数字转换为`int` ,请使用`(int)`将其转换为`double` ,使用`(double)` ,依此类推
要将数字转换为`int` ,请使用`(int)`将其转换为`double` ,使用`(double)` ,其他同理
## MATH.H
这就是所有内置的东西,但就像你可以`#include` stdio和stdbool一样你可以包含一个名为`math.h`的库。该库具有各种有用的功能,适用于各种数学。如果你想要完整的功能列表,那么值得阅读[维基百科页面](https://en.wikipedia.org/wiki/C_mathematical_functions#Overview_of_functions) 。这一个关于如何使用`abs`的例子,这是他们列表中的第一个:
这就是所有内置的东西,但就像你可以`#include` stdio和stdbool一样你可以包含一个名为`math.h`的库。该库具有各种有用的功能,适用于解决各种数学问题。如果你想要完整的功能列表,那么这个页面值得阅读[维基百科页面](https://en.wikipedia.org/wiki/C_mathematical_functions#Overview_of_functions) 。这里有一个关于如何使用`abs`的例子,这是他们列表中的第一个:
```C
a = abs(-1);
```
`abs`计算传递给它的值的绝对值。在这种情况下,它收到-1所以它会把它变成1 `a`将等于1.还有更多可以提供更多的功能,这就是你能够做指数,三角学,以及更多。
`abs`计算传递给它的值的绝对值。在这种情况下,它收到-1所以它会把它变成1 `a`将等于1。MATH.H库还有更多可以提供更多的功能,这就是你能够做指数,三角学,以及更多。
# 在你继续之前......
## 回顾
* 在C中有多的数学运算符
* 在C中有多的数学运算符
* C中存在操作顺序
* 括号存在并且像常规数学一样工作以改变操作顺序
* 有一些一元操作,这些操作只有一个变量:
* 可以使用括号并且像常规数学一样工作以改变操作顺序
* 一元操作,这些操作只有一个变量:
* post-fix和pre-fix运算符用于加1和减1
* 添加一个: `++a;`或者`a++;`
* 减去一个: - `--a`或'a--'
* `-`可以放在变量或数字的前面,就像数学中的负数一样
* 也有一些按位操作
* 和完成
* 或者用|完成
* 不是用〜完成的
* XOR用^完成(XOR不适用于C中的浮点型号
*&完成
* 或者用|完成
* 不是用〜完成的
* 异或用^完成(异或不适用于C中的浮点型号
* 所有非一元操作都存在复合赋值操作
* a + = b与a = a + b相同依此类推
* Casting允许您在数据类型之间进行交换
* math.h有更多的数学东西可供使用
* 铸件typecasting允许您在数据类型之间进行交换
* MATH.H有更多的数学工具和函数可供使用