[C语言] 01--数据类型

1.整型

概念:表示整型类型的数据
语法:int a = 123;
在这里插入图片描述

整数的存储方式:
原码:正整数是直接使用原码进行存储的,比如100这个正整数,则直接把100转换成二进制直接存储。
100 --> 0000 0000 0000 0000 0000 0000 0110 0100
补码:负数则是使用补码来存储,补码 = 原码的绝对值取反 + 1
取反加1时符号位不变
比如 -100 :
100 --> 1000 0000 0000 0000 0000 0000 0110 0100
取反–> 1111 1111 1111 1111 1111 1111 1001 1011
加1 --> 1111 1111 1111 1111 1111 1111 1001 1100
注意:整型数据在二进制存储时最高位(第31位)表示符号位,如果为1 则表示负数反之则表示正数

整型输出:

int c = 100printf("十六进制:%#x\n", c);  //0x64
printf("十进制:%d\n", c);     //100
printf("八进制:%#o", c);      //0144

2.浮点型(实型)

概念:用来表示一个实数的数据类型
浮点数的存储:
在这里插入图片描述

注意:

float = 3.14;        //浮点数3.14通过以上公式计算得到的二进制码被存放与内存f中
printf("f:%f\n",f);  // 使用浮点的计算方法来解析内存f中的值(二进制)
printf("d:%d\n",f);  // 直接使用整型的计算方法来直接解析内存f 中的值 (二进制)

  //所有的数据都会被转换成二进制进行存储,如果想到的到正确的数据,必须使用正确的理解
  //方式(类型),来解析二进制数据。

3.字符类型

char c = 'K';
//1. 申请一片内存并且命名为 c 
//2. 确定内存的大小为 char  (1字节)
//3. 把字符‘K’的ASCII码值转换为二进制,并存储到该内存中

ASCII表如下:
在这里插入图片描述

 char c = '1' ;

 printf("字符:%c\n",c);   // 以字符的形式来解析内存 c 的内容得到 对应的字符 1 
 printf("整型ASCII值:%d\n",c); //以十进制整型来解析内存c 的内容 ,得到1多对应的ASCII值 49

  char k = 'H' ;

  printf("%c\n" , k + 1 );
  printf("%c\n" , k - 1 );  // 字符实质上是一个单字节的整型,因此支持所有整型的操作

字符串:
字符串的表现形式有两种:数组和指针
数组(可读,可写):(存储)
char s1[] = “Hello”; //使用一个数组来存放字符串 “Hello”
在这里插入图片描述

指针(只读):(指向)
char * s2 = “Even”; // 使用一个指针来指向常量字符串
在这里插入图片描述

char s1[] = "Hello";
char *s2  = "Even";

printf("%s, %s\n" , s1 , s2  );

4.布尔类型

概念:布尔类型用来表示真/假(非零则真)
真:true 假:false
注意在使用布尔类型是需要包含他的头文件: <stdbool.h>

bool  a  = 1 ;   // 真
bool  a  = 0 ;   // 假
bool  a  = true  // 真
bool  a  = false  // 假
//一般布尔类型的变量,可以用于逻辑判断比如 if  / while  , 或者用于函数的返回值。

// 布尔类型的大小:
bool a = true ;

printf("sizeof(bool):%ld \n ",sizeof(bool) );

printf("sizeof(a):%ld \n ",sizeof(a) );

printf("sizeof(true):%ld \n ",sizeof(true) );

printf("sizeof(false):%ld \n ",sizeof(false) );

printf("false:%d \n ",false );

printf("true:%d \n ",true );
//运行结果:

sizeof(bool):1   

sizeof(a):1     

sizeof(true):4  

sizeof(false):4 

false:0

true:1

5.常量与变量

概念: 不可以被改变的内存,被称为常量,可以被改变的内存则称为变量

int  a =  100 ; // a是一个变量, 而 100 则是常量
float  f = 3.1415; // f 是一个变量, 而 3.1415 则是常量
char s1[] = "abcdefg" ;  // s1 是一个变量 , 而"abcdefg" 则是常量 (字符串常量)
常量类型:
         100   : 整型常量
         100L :   长整型 long 
         100LL : 长长整型 long long
         100UL : 无符号的长整型  unsigned long 
         3.14   : 编译器默认升级为双精度浮点型
         3.14L : 长的双精度浮点型 
         'a'  : 字符常量
         "Hello"  : 字符串常量(指针 char  *
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值