c++printf 输出 长整数
时间: 2024-01-18 07:18:09 浏览: 117
在C++中,可以使用`printf`函数来输出长整数。下面是一个示例代码:
```cpp
#include <iostream>
#include <cstdio>
int main() {
long long int num = 1234567890123456789LL;
printf("Long integer: %lld\n", num);
return 0;
}
```
在上面的代码中,我们使用`%lld`格式说明符来输出长整数。`%lld`用于格式化`long long int`类型的变量。注意,`%lld`只能用于输出长整数,不能用于其他类型的变量。
另外,如果要输出超大整数,可以使用`%s`格式说明符和`std::to_string`函数将超大整数转换为字符串,然后使用`printf`输出。下面是一个示例代码:
```cpp
#include <iostream>
#include <cstdio>
#include <string>
int main() {
long long int num = 1234567890123456789LL;
std::string str = std::to_string(num);
printf("Long integer: %s\n", str.c_str());
return 0;
}
```
在上面的代码中,我们使用`std::to_string`函数将长整数转换为字符串,然后使用`%s`格式说明符输出字符串。
相关问题
c++中可以用printf输出unsigned long long 吗?
是的,C++中可以使用`printf`函数输出`unsigned long long`类型的值。你可以使用`%llu`格式说明符来指定输出的格式,示例如下:
```cpp
unsigned long long num = 12345678901234567890ULL;
printf("Number: %llu\n", num);
```
请注意,`%llu`是用于无符号长长整数类型的格式说明符,`ULL`后缀用于确保常量被解释为`unsigned long long`类型。
用C++写实现大整数减法
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000 // 大整数最大长度
void reverse(char *s) { // 反转字符串
int len = strlen(s);
for (int i = 0; i < len / 2; i++) {
char tmp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = tmp;
}
}
int main() {
char a[MAX_LEN], b[MAX_LEN], c[MAX_LEN];
scanf("%s %s", a, b);
int len_a = strlen(a), len_b = strlen(b);
if (len_a < len_b || (len_a == len_b && strcmp(a, b) < 0)) { // 保证 a >= b
char tmp[MAX_LEN];
strcpy(tmp, a);
strcpy(a, b);
strcpy(b, tmp);
int tmp_len = len_a;
len_a = len_b;
len_b = tmp_len;
}
reverse(a); // 反转字符串,方便从低位到高位计算
reverse(b);
int carry = 0, i;
for (i = 0; i < len_b; i++) { // 从低位到高位依次计算
int tmp = a[i] - '0' - (b[i] - '0') - carry;
carry = 0;
if (tmp < 0) { // 如果需要借位
carry = 1;
tmp += 10;
}
c[i] = tmp + '0'; // 将计算结果转换为字符
}
for (; i < len_a; i++) {
int tmp = a[i] - '0' - carry;
carry = 0;
if (tmp < 0) {
carry = 1;
tmp += 10;
}
c[i] = tmp + '0';
}
while (i > 0 && c[i - 1] == '0') i--; // 去掉高位的0
if (i == 0) printf("0"); // 如果结果为0,直接输出0
else {
c[i] = '\0';
reverse(c);
printf("%s", c);
}
return 0;
}
阅读全文