(强数据类型)

1.常量

  常量是程序中不可变的量

  10为常量

  

  两种常量

  #define 定义宏常量

  const

  

  #对于#define 类型的常量,c语言的习惯是常量名称大写, 对于普通const常量以及变量,一般以小写结合大写的方式

#include <stdio.h>

int main()
{
printf("%d", );
return ;
}
#include <stdio.h>

#define MAX 10 //定义一个宏常量 值为10
int main()
{
printf("%d", MAX);
return ;
}
#include <stdio.h>

#define MAX 10 //定义一个宏常量 值为10
int main()
{
//MAX = 200; //等号左边必须为变量,不能为常量,常量的值不能修改
printf("%d", MAX);
return ;
}
#include <stdio.h>
int main()
{
const int a = ;
printf("%d", a);
return ;
}

  

  以上为整数常量

  

  字符串 常量

  

#include <stdio.h>
#define STRING "hello world\n";
int main()
{
const char * str = "hello c";
}

2. 二进制 位 字节 字

  一个位只能表示 0 1 两种状态    bit  1位位1bit

  一个字节为八个二进制  8位   BYTE   8个bit一个字节

  500GB B为BYTE         10Mb bit 

  1个字 2个字节  简称WORD

  2个字为双字      ZWORD

 

  0 八进制 0x 16进制

  

  原码 反码 补码

  整数占 4个字节 以下只写了 1个字节举例子

  

    

sizeof 关键字

  是c语言关键字,功能是求指定数据类型所占用的字节数。

#include <stdio.h>
int main()
{
printf("%d\n", sizeof());
return ;
}

  32位(bit)操作系统返回的为4     最大的存储的数字   2(32-1) 的数字

  size_t 类型

  

int类型

  int 常量变量

  int 是32位的一个二进制整数,在内存中占据4个字节‘’

   %d  , 输出一个有符号的10进制整数

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

int main()
{
printf("%x\n", 0x10);//输出10
printf("%x\n", );//输出十进制10对应得十六位a
printf("%x\n", 0xa);//输出a
return ;
}
#include <stdio.h>
int main()
{
printf("%x\n", 0x10);//输出10
printf("%x\n", );//输出十进制10对应得十六位a
printf("%x\n", 0xa);//输出a
printf("%x", -);
return ;
}
/*
printf("%x", -7); 输出 fffffff9(这是-7的补码转换为16进制)
源码 10000000 00000000 000000000 00000111
反码 11111111 11111111 111111111 11111000
补码 11111111 11111111 111111111 11111001
*/

/*
-7
1000 0111 用有符号的眼光-7 无符号的眼光135
*/

 

%x 代表输出十六进制数 (十六进制不表达负数)

%X 用大写字母方式输出16进制数

%o 输出八进制数 (2进制与八进制不表达负数)

short、 long 、int 、 long long 、unsigned  、signed(有符号数)

  short 为短整数 在32位操作系统占2个字节

  long 代表长整数, 在32位系统下位4个字节  在64位系统下,windows 4个字节  Unix 为八个字节(不同的操作系统不一样)

  int  (32位系统以上)不论在什么情况下都是4个字节

  long long 是64位 也就是八个字节的整数  对于32位操作系统cpu寄存器位32位的,计算longlong类型的数据, 效率很低

  unsigned  无符号的数,可以加在任意整数类型后面

#include <stdio.h>
int main()
{
int a = ;//4个字节
short b = ;
printf("%d\n", sizeof(b));//
return ;
}
#include <stdio.h>
int main()
{
int a = ;//4个字节
short b = ;
long long c = ;
printf("%d\n", sizeof(c));//
return ;
}
#include <stdio.h>
int main()
{
int a = ;//4个字节
short b = ;
long long c = ;
unsigned int d = ;
printf("%d\n", sizeof(d));//
return ;
}

整数溢出

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

当一个小的整数复制给大的整数,符号位不会丢失,会集成

    unsigned short abc = 0xffff;
abc = abc + ;
printf("%d\n", abc);//
return ;
  
#include <stdio.h>
int main()
{
int a = ;//4个字节
short b = ;
long long c = ;
unsigned int d = ;
printf("%d\n", sizeof(d));// unsigned short abc = 0xffff;
//abc = abc + 1;
//printf("%d\n", abc);// abc = abc + ;
printf("%d\n", abc);// abc = ;
abc = abc - ;
printf("%u\n", abc);// int i1 = 0x12345678;
abc = i1;
printf("%x\n", abc);//5678 short abc1 = -;
//1000 0000 0000 0010
//1111 1111 1111 1101
//1111 1111 1111 1110(-2)
//1111 1111 1111 1111 1111 1111 1111 1110 i1 = abc1;
printf("%x\n", i1);//fffffffe unsigned short abc2 = ; abc2 = abc2 - ;
//00000000 00000000
//10000000 00000001
//11111111 11111110
//11111111 11111111(65535)
printf("%d\n", abc2);//65535 //00000000 00000000 00001100
//10000000 00000000 00000000 00001010
//11111111 11111111 11111111 11110110
return ; }

内存都是以字节为单位的

1个整数,4个字节

大端对齐 与小端对齐

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

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

  

c语言数据类型(一)的更多相关文章

  1. C语言数据类型的理解

    数据类型的定义: 作为一种语言,必然有所谓的语言组成要素,就像日常生活中人们之间的交流一样,首先会有字,字再成词组,再来就是句子,后来呢就是段落等等.当然不同的字,词,句这些在一起,就会有不同的表达效 ...

  2. R语言数据类型

    R语言数据类型[转!!]Zhao-Pace  https://www.cnblogs.com/zhao441354231/p/5970544.html   R语言用来存储数据的对象包括: 向量, 因子 ...

  3. Go语言 数据类型,流程控制

    Go语言 数据类型,流程控制 人生苦短,Let's Go ! package main // 必须要有一个main包 import "fmt" func main() { fmt. ...

  4. C语言数据类型_02

    C语言数据类型:

  5. R语言 数据类型

    R语言数据类型 通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息. 变量只是保留值的存储位置. 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们. 您可能想存储各种 ...

  6. C语言数据类型取值范围

    一.获取数据类型在系统中的位数 在不同的系统中,数据类型的字节数(bytes)不同,位数(bits)也有所不同,那么对应的取值范围也就有了很大的不同,那我们怎么知道你当前的系统中C语言的某个数据类型的 ...

  7. 一:c语言(数据类型和运算符)

    #include <stdio.h> /*就是一条预处理命令,它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作.*/ int main() /*C程序就是执行主函数 ...

  8. -- c语言数据类型总结 --

    C语言中的数据类型总结

  9. 第三课,T语言数据类型(版本TC5.0)

    数据类型 TC综合开发工具里使用的是可变类型,就是在程序执行过程中,TC综合开发工具会自动把数据转换为需要的类型,转换失败会出现相应的提示但是在一些特殊的场景下,是需要做类型强制处理,那么这时就需要使 ...

  10. C语言数据类型

    1.概述 C 语言包含的数据类型如下图所示: 2.各种数据类型介绍 2.1整型 整形包括短整型.整形和长整形. 2.1.1短整形 short a=1; 2.1.2整形 一般占4个字节(32位),最高位 ...

随机推荐

  1. Linux下安装jdk&Jmeter

    一.在Linux上部署一个jdk以及Jmeter   tips1:Linux安装tar.gz文件到路径 tar -zxvf 软件包名.tar.gz -C 路径 比如我的jdk-8u131-linux- ...

  2. 十一、springboot(六)整合Thymeleaf

    1.添加jar包依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId ...

  3. [C#]async和await刨根问底

    上一篇随笔留下了几个问题没能解决:· 调用IAsyncStateMachine.MoveNext方法的线程何时发起的?· lambda的执行为何先于MoveNext方法?· 后执行的MoveNext方 ...

  4. java jvm设置http代理参数

    -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=1080

  5. BT.656 NTSC制式彩条生成模块(verilog)

    BT.656 NTSC制式彩条生成模块(verilog) 1.知识储备 隔行扫描是将一副图像分成两场扫描,第一场扫描第1,2,5,7...等奇数行,第二场扫描2,4,6,8...等偶数行,并把扫奇数行 ...

  6. C++和extern C

    http://blog.csdn.net/gongmin856/article/details/44228453 C语言中的可变参数:va_list ,va_start,va_arg,va_end h ...

  7. 源代码安装Apache、Mysql、PHP

    源代码软件的优点:     获得最新版,能及时修复bug:     能自行修改和定制: 源代码打包形式:     .tar.gz和.tar.bz2格式居多: 完整性校验:     md5sum校验工具 ...

  8. 【转】SQL Server日志文件过大 大日志文件清理方法 不分离数据库

    https://blog.csdn.net/slimboy123/article/details/54575592 还未测试 USE[master] GO ALTER DATABASE 要清理的数据库 ...

  9. 数据仓库专题18-数据建模语言IDEF(转载)

    1引言 IDEF的含义是集成计算机辅助制造(Integrated Computer-AidedManufacturing,ICAM)DEFinition.最初的IDEF方法是在美国空军ICAM项目建立 ...

  10. Maven 专题

    目录: Maven的安装 Eclipse安装Maven插件 Nexus私服搭建 Maven+Nexus配置 发布自己的构件(至Nexus) 创建maven多模块工程group 整理中[...] 先放一 ...