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,更多是采用大端对齐的方式存放整数

#include <stdio.h> int main()
{
int a = ;//4个字节大小
short b = ;
printf("%d\n", sizeof(b));
long c = ;
printf("%d\n", sizeof(c));
long long d = ;
printf("%d\n", sizeof(d));
unsigned int e = ;//unsigned是关键字,代表是无符号数的意思
printf("%d\n", sizeof(e)); //unsigned short f;//无符号的short
//unsigned long g;//无符号的long
//unsigned long long i;//无符号的long long //int i1; unsigned short abc = 0xffff;
abc = abc + + ;
printf("%d\n", abc); abc = ;
abc = abc - ;
printf("%d\n", abc); int i1 = 0x12345678;
abc = i1;
printf("%x\n", abc); short abc1 = -;
i1 = abc1;
printf("%x\n", i1); unsigned short abc2 = ;
abc2 = abc2 - ;
printf("%d\n", abc2); int a1 = 0x12345678;
printf("%p\n", &a1);//%p的意思是显示一个内存的地址,&a1代表变量a1的地址编号 return ;
}
资料来源:传智播客 仅供学习研究
2_C语言中的数据类型 (四)整数与无符号数的更多相关文章
- 深入理解计算机系统(2.5)------C语言中的有符号数和无符号数以及扩展和截断数字
上一篇博客我们讲解了计算机中整数的表示,包括无符号编码和补码编码,以及它们之间的互相转换,个人觉得那是非常重要的知识要点.这篇博客我们将介绍C语言中的有符号数和无符号数以及扩展和截断数字. 1.C语言 ...
- 2_C语言中的数据类型 (七)printf与scanf
1 字符串格式化输出和输入 1.1 字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 “”是C语言表达字符串的方式 1.2 ...
- 2_C语言中的数据类型 (九)数组
1 数组 1.1 一维数组定义与使用 int array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的 array[0] = ...
- 2_C语言中的数据类型 (八)运算符
1 运算符表达式和语句 1.1 基本运算符 1.1.1 = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1 ...
- 2_C语言中的数据类型 (一)2.1.常量和字符串常量
2.1 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1 #define 定义一个宏常量 1.1.2 const 定义一个const常量 ...
- 2_C语言中的数据类型 (十)数组
1 字符串与字符数组 1.1 字符数组定义 char array[100]; 1.2 字符数组初始化 char array[100] = {'a', 'b', ...
- 2_C语言中的数据类型 (九)逻辑运算符与if语句、switch、条件运算符?、goto语句与标号
1 条件分支语句 1.1 关系运算符 在C语言中0代表false,非0代表真 1.1.1 < 小于 1.1.2 <= 小于 ...
- 2_C语言中的数据类型 (六)浮点数
1.1 浮点float,double,long double类型 1.1.1 浮点常量,变量 Float在32位系统下是4个字节,double在32位系统下是8个字节 小 ...
- 2_C语言中的数据类型 (五)char
1.1 char类型 1.1.1 char常量,变量 char c:定义一个char变量 ‘a’,char的常量 Char的本质就是一个整数,一个只有1个字节大小的整数 ...
随机推荐
- 使用NSOperation以及NSOperationQueue
使用NSOperation以及NSOperationQueue NSOperation vs. Grand Central Dispatch (GCD) 在Mac OS X v10.6和iOS4之前, ...
- 关于php优化 你必须知道的一些事情
1. 用单引号代替双引号来包含字符串,这样做会更快一些.因为 PHP 会在双引号包围的 字符串中搜寻变量,单引号则不会,注意:只有 echo 能这么做,它是一种可以把多个字符 串当作参数的“函数”(译 ...
- ZT Shell 排序
Shell 排序 分类: 算法 C 2008-09-17 11:02 1898人阅读 评论(4) 收藏 举报 shell语言c 刚才在CSDN的C语言板块看到了有人说Shell排序的问题,所以一起学习 ...
- 64位操作系统下调用32位com的问题
Hello Guys! I am trying to create a simple VBS script to automatically open some .tif images from a ...
- codeforces 424D Biathlon Track
codeforces 424D Biathlon Track 题意 题解 代码 #include<bits/stdc++.h> using namespace std; #define f ...
- APP的案例分析
很多同学有误解,软件项目管理是否就是理论课?或者是几个牛人拼命写代码,其他人打酱油的课?要不然就是学习一个程序语言,搞一个职业培训的课?都不对,软件项目管理有理论,有实践,更重要的是分析,思辨,总结. ...
- PHP设计模式系列 - 建造者模式
什么是建造者模式 建造者模式主要是为了消除其它对象复杂的创建过程. 设计场景 有一个用户的UserInfo类,创建这个类,需要创建用户的姓名,年龄,金钱等信息,才能获得用户具体的信息结果. 创建一个U ...
- .NET Core 控制台项目中的Nuget打包类库及引用
由于使用的是MAC版本的VSCode,所以全部是通过dotnet命令来完成的. 1.dotnet new lib 创建类库项目: 2.编辑项目根目录下的.csproj文件,添加版本号(建议): < ...
- swift的enum模式—对Alamofire入口的解析--数据结构与操作结合的模式
swift的枚举模式是数据结构与操作结合的模式 1.enum本质是一个类型,可以定义变量: 它定义的变量可以用到其它变量用的的任何地方:函数的输入.输出.成员变量.临时变量等: 这个变量还可以带有附加 ...
- 3226. [SDOI2008]校门外的区间【线段树】
Description 受校门外的树这道经典问题的启发,A君根据基本的离散数学的知识,抽象出5种运算维护集合S(S初始为空)并最终输出S.现在,请你完成这道校门外的树之难度增强版——校门外的区间. ...