c语言数据类型 无符号,2_C语言中的数据类型 (三)整数与无符号数

1.1       sizeof关键字

sizeof是c语言关键字,功能是求指定数据类型在内存中的大小,单位:字节

sizeof与size_t类型

1.1       int类型

1.1.1          int常量,变量

int就是32位的一个二进制整数,在内存当中占据4个字节的空间

1.1.2          printf输出int值

%d,输出一个有符号的10进制整数,%u,代表输出一个无符号的十进制整数

1.1.3          printf输出八进制和十六进制

%x,代表输出16进制数,%X,用大写字母方式输出16进制数

%o代表输出八进制数

1.1.4          short,long,long long,unsigned int

short意思为短整数,在32位系统下是2个字节,16个比特

long意思为长整数,在32位的系统下,long都是4个字节的,在64位系统下,windows还是4个字节,unix下成了8个字节。

Int不管是32位系统下,还是64位系统下,不论是windows还是unix都是4个字节的

Long long是64位,也就是8个字节大小的整数,对于32位操作系统,CPU寄存器是32位,所以计算longlong类型的数据,效率很低

9l,9L,9ll,9LL,9u,9ull,9ULL

1.1.5          整数溢出

计算一个整数的时候超过整数能够容纳的最大单位后,整数会溢出,溢出的结果是高位舍弃。

当一个小的整数赋值给大的整数,符号位不会丢失,会继承

1.1.6          大端对齐与小端对齐

对于arm,intel这种x86构架的复杂指令CPU,整数在内存中是倒着存放的,低地址放低位,高地址放高位,小端对齐。

但对于unix服务器的CPU,更多是采用大端对齐的方式存放整数

a70ae346b1227e3b9b909a7baad05860.png

#include

intmain()

{int a = 10;//4个字节大小

short b = 10;

printf("%d\n", sizeof(b));long c = 10;

printf("%d\n", sizeof(c));long long d = 10;

printf("%d\n", sizeof(d));

unsignedint e = 10;//unsigned是关键字,代表是无符号数的意思

printf("%d\n", sizeof(e));//unsigned short f;//无符号的short//unsigned long g;//无符号的long//unsigned long long i;//无符号的long long//int i1;

unsignedshort abc = 0xffff;

abc= abc + 1 + 99;

printf("%d\n", abc);

abc= 2;

abc= abc - 5;

printf("%d\n", abc);int i1 = 0x12345678;

abc=i1;

printf("%x\n", abc);short abc1 = -2;

i1=abc1;

printf("%x\n", i1);

unsignedshort abc2 = 0;

abc2= abc2 - 1;

printf("%d\n", abc2);int a1 = 0x12345678;

printf("%p\n", &a1);//%p的意思是显示一个内存的地址,&a1代表变量a1的地址编号

return 0;

}

资料来源:传智播客 仅供学习研究

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值