c++ long long数据类型如何取余
时间: 2023-10-16 22:08:25 浏览: 588
取余运算符(%)可以用来计算long long数据类型的余数,例如:
```c
long long a = 1234567890123456789LL;
long long b = 9876543210987654321LL;
long long c = a % b;
printf("%lld\n", c); // 输出 1234567890123456789
```
在进行取余运算时,要注意两个操作数都必须是long long类型。如果一个操作数是int类型,则需要将其强制类型转换为long long类型,否则会导致结果错误。例如:
```c
int a = 123456789;
long long b = 9876543210987654321LL;
long long c = a % b; // 错误,a需要强制类型转换为long long类型
long long d = (long long)a % b; // 正确,a被强制类型转换为long long类型
```
相关问题
c++ long数据类型分别取高低位
在C++中,`long` 数据类型通常用来表示整数,它的大小依赖于具体的平台。在32位系统中,`long` 通常是32位的,而在64位系统中,`long` 可能是32位也可能是64位,这取决于编译器和操作系统的实现。对于取高低位操作,我们通常处理的是32位整数,因为64位整数的高低位操作会复杂一些。以下是如何从一个32位的`long`整数中取出高16位和低16位的方法:
1. 高16位的提取可以通过右移16位来实现,之后使用位与操作与0xFFFF(即0000 0000 1111 1111 1111 1111)进行掩码操作,以清除不需要的低16位:
```cpp
long value = ...; // 32位的long值
unsigned short high = (value >> 16) & 0xFFFF;
```
2. 低16位的提取可以通过位与操作与0xFFFF进行掩码操作,之后使用左移操作将其移到高16位,这样可以方便后续的处理(如果需要):
```cpp
long value = ...; // 32位的long值
unsigned short low = (value & 0xFFFF) << 16;
```
需要注意的是,如果处理的是一个64位系统上的`long`类型,可能需要使用`long long`来明确指定64位的操作数,并相应地调整位移量和掩码。
long long数据类型
long long是C++11中新增加的数据类型,它是一种整数类型,用于表示更大范围的整数。在C++中,long long至少占用8个字节(64位),可以表示的范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807之间的整数。如果超出这个范围,就需要使用高精度计算等其他技术来进行处理。
阅读全文
相关推荐
![](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![ppt](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)