1.1       sizeof关键字

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

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语言中的数据类型 (四)整数与无符号数的更多相关文章

  1. 深入理解计算机系统(2.5)------C语言中的有符号数和无符号数以及扩展和截断数字

    上一篇博客我们讲解了计算机中整数的表示,包括无符号编码和补码编码,以及它们之间的互相转换,个人觉得那是非常重要的知识要点.这篇博客我们将介绍C语言中的有符号数和无符号数以及扩展和截断数字. 1.C语言 ...

  2. 2_C语言中的数据类型 (七)printf与scanf

    1          字符串格式化输出和输入 1.1       字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 “”是C语言表达字符串的方式 1.2       ...

  3. 2_C语言中的数据类型 (九)数组

    1          数组 1.1       一维数组定义与使用 int array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的 array[0] = ...

  4. 2_C语言中的数据类型 (八)运算符

    1          运算符表达式和语句 1.1       基本运算符 1.1.1          = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1 ...

  5. 2_C语言中的数据类型 (一)2.1.常量和字符串常量

    2.1 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1          #define 定义一个宏常量 1.1.2          const 定义一个const常量 ...

  6. 2_C语言中的数据类型 (十)数组

    1          字符串与字符数组 1.1       字符数组定义 char array[100]; 1.2       字符数组初始化 char array[100] = {'a', 'b', ...

  7. 2_C语言中的数据类型 (九)逻辑运算符与if语句、switch、条件运算符?、goto语句与标号

    1          条件分支语句 1.1       关系运算符 在C语言中0代表false,非0代表真 1.1.1          < 小于 1.1.2          <= 小于 ...

  8. 2_C语言中的数据类型 (六)浮点数

    1.1       浮点float,double,long double类型 1.1.1          浮点常量,变量 Float在32位系统下是4个字节,double在32位系统下是8个字节 小 ...

  9. 2_C语言中的数据类型 (五)char

    1.1       char类型 1.1.1          char常量,变量 char c:定义一个char变量 ‘a’,char的常量 Char的本质就是一个整数,一个只有1个字节大小的整数 ...

随机推荐

  1. 使用YXHUD

    使用YXHUD 这是本人自己设计的一个类,但功能很不完善,先看看效果: 源码: YXHUD.h 与 YXHUD.m // // YXHUD.h // UILabel // // Created by ...

  2. (1)Object类 (2)包装类和数学处理类 (3)String类

    1.Object类1.1 基本概念 java.lang.Object类是Java类层次结构的根类,任何类都是Object类的直接/间接子类. 1.2 常用的方法(重点) Object() - 无参构造 ...

  3. mode="r" 和 函数末尾调用 regist()!!!!

    def regist(): f = open(r"G:\课件\day09 初始函数\code\day009 初始函数\account", mode="r", e ...

  4. PostProcess崩溃

    1.__debugbreak 功能暂停程序执行,打开调试器,进入调试模式. 2.重要参考: https://blog.csdn.net/phenixyf/article/details/4930457 ...

  5. GNSS基础(持续更新)

    1.整周模糊度成功率 可参考文献:GNSS整周模糊度概率特性 2.正太分布 见百度百科 https://baike.baidu.com/item/%E6%AD%A3%E6%80%81%E5%88%86 ...

  6. Mysql 漏洞利用(越权读取文件,实战怎么从低权限拿到root密码)[转]

    cnrstar (Be My Personal Best!) | 2014-05-20 21:58 众所周知,Mysql的用户在没有File权限情况下是无法通过Load_file读文件或者通过into ...

  7. jquery根据字符切割字符串

    var str=new String(); var arr=new Array(); str="ddd,dsd,3,dd,g,k"; //可以用字符或字符串分割 arr=str.s ...

  8. Day1 Java编程环境和变量

    什么是软件? 软件的基本组成部分是完成其功能的程序. 在日程生活中,可以将程序看成对一系列动作的执行过程的描述. 什么是计算机程序? 为了让计算机执行某些操作或解决某个问题二编写的一系列有序指令的集合 ...

  9. ASP.NET Core读取appsettings.json配置文件信息

    1.在配置文件appsettings.json里新增AppSettings节点 { "Logging": { "LogLevel": { "Defau ...

  10. virtualbox+vagrant学习-2(command cli)-16-vagrant snapshot命令

    Snapshot快照 这是用于管理客户机器快照的命令.快照记录客户计算机的时间点状态.然后可以快速恢复到此环境.这可以让你进行试验和尝试,并迅速恢复到以前的状态. 快照并不是每个provider都支持 ...