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

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 = 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));
    unsigned int e = 10;//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 + 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);

    unsigned short abc2 = 0;
    abc2 = abc2 - 1;
    printf("%d\n", abc2);

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

    return 0;
}

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

时间: 2024-10-12 16:59:39

2_C语言中的数据类型 (三)整数与无符号数的相关文章

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

上一篇博客我们讲解了计算机中整数的表示,包括无符号编码和补码编码,以及它们之间的互相转换,个人觉得那是非常重要的知识要点.这篇博客我们将介绍C语言中的有符号数和无符号数以及扩展和截断数字. 1.C语言中的有符号数和无符号数 上一篇博客我们给出了C语言中在32位机器和64位机器中支持的整型类型数据,我们这里只给出32位机器上的: 尽管 C 语言标准没有指定有符号数要采用某种编码表示,但是几乎所有的机器都使用补码.通常大多数数字是默认有符号的,比如当声明一个像12345或者0xABC这样的常量的时候

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

1          运算符表达式和语句 1.1       基本运算符 1.1.1          = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1.1.2          + 加 1.1.3          – 减 1.1.4          * 乘 1.1.5          / 除 1.1.6          % 取余数 1.1.7          += 加等于 1.1.8          -= 减等于 1.1.9     

2_C语言中的数据类型 (九)逻辑运算符与if语句

1          条件分支语句 1.1       关系运算符 在C语言中0代表false,非0代表真 1.1.1          < 小于 1.1.2          <= 小于等于 1.1.3          > 大于 1.1.4          >= 大于等于 1.1.5          == 等于 1.1.6          != 不等于 1.2       关系运算符优先级 前四种相同,后两种相同,前四种高于后两种优先级 1.3       逻辑运算符 1

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

1.1       char类型 1.1.1          char常量,变量 char c:定义一个char变量 'a',char的常量 Char的本质就是一个整数,一个只有1个字节大小的整数 1.1.2          printf输出char %c意思是输出一个字符,而不是一个整数 1.1.3          不可打印char转义符 \a,警报 \b退格 \n换行 \r回车 \t制表符 \\斜杠 \'单引号 \"双引号 \?问号 1.1.4          char和unsign

2_C语言中的数据类型 (二)进制

1.1       二进制数.位.字节与字 我们习惯于十进制的数:10,12等 一个位只能表示0,或者1两种状态,简称bit,一个位是一个bit 一个字节为8个二进制,称为8位,简称BYTE,8个比特是一个字节 一个字为2个字节,简称WORD. 两个字为双字,简称DWORD 1.2       八进制 八进制为以8为基数的数制系统,C语言当中0表示八进制,0666; 1.3       十六进制 十六进制值16为基数 的数制系统,C语言中用0x表示十六进制 十进制 十六进制 二进制 0 0 00

2_C语言中的数据类型 (十)while、for

1          循环语句 1.1       while while(条件),如果条件为真,循环继续,条件为假,循环结束 while (1)..是死循环的写法 1.2       continue 循环遇到continue语句,不再执行continue下面代码,而是直接返回到循环起始语句处继续执行循环 1.3       break 循环遇到break语句,立刻终端循环,循环结束 1.4       do while do 复合语句 while (条件); 对于do while来讲,循环的

Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器

Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型,函数之内的 我们先来看一张传播久远的图片' 一.各种数据类型介绍 整型 整形包括短整型.整形和长整形. 短整形 short a=1; 整形 一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前.高位在

C语言中的数据类型详解

c语言其实可以理解为为救两种数据类型,整数和浮点数(bool类型char类型都可以看作整数类型).  不过这次并不是从两个方面说,而把char类型等从整数类型分开说.   而对于数据类型的说明也从存储和打印两个方面说起.  存储:     0.数据类型的位数是由操作系统决定的,一般系统都把一个char类型的位数当作一个字节.1.int 类型          int类型种类很多,         总结为前面叫long(short******),signed(unsighed):        

C语言中的数据类型

C语言中基本的数据类型有: 整型: 分为有符号整型(signed)和无符号整型(unsigned ), 它们各自又可以分为 长整型(long), 短整型(short), 整型(int)和字符型(char), 所以结合起来一共有8种基本的整型结构: long/short/int/char/unsigned long/unsigned short/unsigned int/unsigned char; 浮点型:分为单精度 float , 双精度型:double; (补充:整型表示的数的范围: 说到了