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);
    }