(强数据类型)

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. CSS vertical-algin的使用

    一.什么vertical-algin vertical的意思就是垂直,algin是对齐的意思,连起来就是“垂直对齐方式”,接下来看看vertical-algin有哪些属性,打开浏览器一看 vertic ...

  2. java 连接 hiveserver2 例子

    启动了  hiveserver2 以后才能使用 程序连接 .目前的 使用的 是  server2 版本.和以前的版本驱动包名不同: package hadoop; import java.sql.Co ...

  3. Jenkins进阶-用户权限管理(10)

    在版本发布的由于大家的分工不同,所以想通过控制用户的账号达到权限管理,对每个角色进行权限控制,最初通过"项目矩阵授权策略"的策略对每个项目进行单一的权限控制,当时也满足了效果,随着 ...

  4. PL/SQL Developer显示中文乱码

    PL/SQL Developer显示中文乱码,可能是oracle客户端和服务器端的编码方式不一样. 解决方法: Select userenv('language') from dual; 设置环境变量 ...

  5. linux mv命令详解

    Linux mv命令 Linux mv命令用来为文件或目录改名.或将文件或目录移入其它位置. 用法: mv [选项]... [-T] 源文件 目标文件 mv [选项]... 源文件... 目录 mv ...

  6. Linux shell脚本读取用户输入的参数

    新建一个test.sh文件 #!/bin/sh echo "1 : For Test" echo "2 : For nohup &" whiletrue ...

  7. Spring Cloud(Dalston.SR5)--Feign 声明式REST客户端

    Spring Cloud 对 Feign 进行了封装,集成了 Ribbon 并结合 Eureka 可以实现客户端的负载均衡,Spring Cloud 实现的 Feign 客户端类名为 LoadBala ...

  8. Centos7 环境下 Python2.7 换成 Python3.7 运行 scrapy 应用所遇到的问题记录

    参考网友的安装过程 Linux系统Centos安装Python3.7 设置Python默认为Python3.7 mv /usr/bin/python /usr/bin/python.bak ln -s ...

  9. SQLSERVER2008 存储过程基本语法

    SQLSERVER2008 存储过程基本语法 来源:https://www.cnblogs.com/tlduck/p/5462399.html 一.定义变量--简单赋值declare @a intse ...

  10. Intellij IDEA神器值得收藏的小技巧

    概述 Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜.出于对Intellij IDEA的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的Intel ...