05 整形
整形
整形变量的定义和输出
打印格式 | 含义 |
---|---|
%d | 输出一个有符号的10进制int类型 |
%o | 输出8进制的int类型 |
%x | 输出16进制的int类型,字母以小写输出 |
%X | 输出16进制的int类型,字母以大写输出 |
%u | 输出一个10进制的无符号数 |
#include
int main1727(void)
{
//数据类型 标识符 = 值;
//无符号 unsigned 有符号 signed
signed int a=-10;
printf("%d\n",a); //结果:-10
unsigned int a=-10;
//%u 占位符 表示输出一个无符号十进制整形数据
printf("%u\n",a); //结果:4294967286
return 0;
}
int main(void)
{
//进制
//二进制0-1 八进制0-7 十六进制0-9 10-15(a-f A-F)
int a=10;
//占位符 %d 输出一个十进制整型
printf("%d\n",a);
//占位符 %x 输出一个十六进制整型
printf("%x\n",a);
printf("%X\n",a);
//占位符 %d 输出一个八进制整型
printf("%o\n",a);
return 0;
//结果:
//10
//a
//A
//12
//定义八进制数据 以0开头
int a = 0123;
//定义十六进制数据 以0x开头
int b = 0xabc;
//在计算机定义数据时 不可以直接定义二进制
}
整形输入
#define _CRT_SECURE_NO_WARNINGS //这个宏定义最好放在c文件的第一行
#include
#pragma warning(disable:4996) //或者使用这个
int main(void)
{
int a;
//通过键盘输入数值
//&运算符 表示取地址运算符
scanf("%d",&a);
printf("%d\n",a);
return 0;
}
scanf安全问题解决:
define _CRT_SECURE_NO_WARNINGS
pragma warning(disable:4996)
有符号数与无符号数的区别
有符号数:
有符号数是最高位为符号位,0代表正数,1代表负数。
无符号位:
无符号数最高位不是符号位,而就是数的一部分,无符号数不可能是负数
short,int,long,long long
数据类型 | 占用空间 |
---|---|
short(短整型) | 2字节 |
int(整形) | 4字节 |
long(长整型) | Windows为4字节,Linux为4字节(32位),8字节(64位) |
long long(长长整形) | 8字节 |
int main()
{
//整型变量
int a=10;
//短整型变量
short b=20;
//长整型变量
long c=30;
//长长整形变量
long long d=40;
printf("%d\n",a);
//占位符 表示输出一个短整型数据
printf("%hd\n",b);
//占位符 表示输出一个长整型数据
printf("%ld\n",c);
//占位符 表示输出一个长长整型数据
printf("%lld\n",d);
}
sizeof关键字
-
sizeof不是函数,使用不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位为字节。
-
sizeof的返回值为size_t
-
size_t 类型在32位操作系统下是unsigned int,是一个无符号的整形。
int main() { //sizeof 计算数据在内存中占的字节(BYTE)大小 //sizeof(数据类型) sizeof(变量名) sizeof 变量名 unsigned int lan=sizeof(int); printf("%d\n",lan); }