在C语言中,整数(也称为整型)有多种表示方法,具体取决于你想表示的是十进制、八进制、十六进制还是字符形式的整数,以下是详细的说明和示例:
十进制整数(默认)
这是最常见的表示方式,直接使用数字 0-9 表示,不能以 0 开头(除非是 0 本身)。
int a = 10; // 正整数 int b = -20; // 负整数 int c = 0; // 零
八进制整数
以 0 开头,后面跟 0-7 的数字。
int octal = 012; // 十进制的 10(八进制 12 = 1*8 + 2)
十六进制整数
以 0x 或 0X 开头,后面跟 0-9 和 a-f(不区分大小写)。
int hex = 0xA; // 十进制的 10(十六进制 A = 10) int hex2 = 0xFF; // 十进制的 255(十六进制 FF = 15*16 + 15)
字符形式的整数
字符(char)本质上是存储 ASCII 码的整数,可以用单引号 包围表示。
char ch = 'A'; // ASCII 码 65 int num = '0'; // ASCII 码 48
无符号整数
使用 unsigned 关键字修饰,表示非负整数(范围是 0 到 2^n - 1,n 是位数)。
unsigned int x = 100; // 只能存储非负数
长整型
使用 long 或 long long 表示更大的整数范围(具体范围取决于编译器和系统)。
long l = 1234567890L; // 后缀 L 表示 long long long ll = 123456789012345LL; // 后缀 LL 表示 long long
科学计数法(浮点数)
虽然严格来说不是整数,但可以用 e 或 E 表示科学计数法(如 1e3 表示 0)。
double d = 1e3; // 1000.0(浮点数)
示例代码
#include <stdio.h>
int main() {
int decimal = 42;
int octal = 052; // 十进制的 42
int hex = 0x2A; // 十进制的 42
char ch = '*'; // ASCII 码 42
unsigned int u = 100;
long l = 1234567890L;
printf("十进制: %d\n", decimal); // 42
printf("八进制: %o\n", octal); // 52(八进制表示)
printf("十六进制: %X\n", hex); // 2A(十六进制大写)
printf("字符对应的整数: %d\n", ch); // 42
printf("无符号整数: %u\n", u); // 100
printf("长整型: %ld\n", l); // 1234567890
return 0;
}
| 表示方式 | 示例 | 说明 |
|---|---|---|
| 十进制 | 123 |
默认方式,不能以 0 开头 |
| 八进制 | 0123 |
以 0 开头 |
| 十六进制 | 0x123 |
以 0x 开头 |
| 字符 | 'A' |
ASCII 码对应的整数 |
| 无符号 | unsigned 123 |
非负整数 |
| 长整型 | 123L |
long 类型 |
根据需求选择合适的表示方式即可!
