栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

嵌入式软件初学者

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

嵌入式软件初学者

C语言入门

文章目录
    • C语言入门
    • 1、基本数据类型
    • 2、计量单位
    • 3、有符号数和无符号数
    • 4、数据溢出的知识点
    • 5、整型数据在内存中的存储方式
    • **总结1**
    • 6、char类型 数据 ----单个字符数据
    • 7、ascii 码
    • 8、转义字符概念:

1、基本数据类型

char
short
int
long
float
double
long long
bool
如何计算数据类型或者变量在内存中所占的字节数?

#include 
#include 
int main()
 { 
//int类型所占的字节数
//printf将指定格式的字符串输出到屏幕终端上
//char
printf("char size:%lun",sizeof(char));
//short
printf("short size:%lun",sizeof(short));
//int
printf("int size:%lun",sizeof(int));
//long
printf("long size:%lun",sizeof(long));
//float
printf("float size:%lun",sizeof(float));
//double
printf("double size:%lun",sizeof(double));
//long long
printf("long long size:%lun",sizeof(long long));
//bool --布尔数据类型 要加 头文件
printf("bool size:%lun",sizeof(bool));
printf("true size:%lun",sizeof(true));
//true false 其实是整型数据 占 4个字节 tr
printf("false size:%lun",sizeof(false));
return 0;
}

使用运算符 sizeof(数据类型的名字 或者变量名)

特别注意:
## 布尔类型bool 要添加 #include

2、计量单位

1byte(字节) = 8个二进制数
1KB(千字节) = 1024字节
1M = 1024KB(千字节) 4
1G = 1024M
1T = 1024G
1G = 1024 * 1024*1024 字节

3、有符号数和无符号数

有符号数 (signed ) char a = -100 char a = 100; -->存储到内存中,最高位 表示符号位 1表示负数 0表示正数
无符号数 unsigned char a = 100;

4、数据溢出的知识点

 unsigned char 0~255
(signed)char -128 ~ +127
正数:+0 ~ +127
负数:-0 ~ -127
由于+0 和 -0重复,-0表示 -128
unsigned short 0~65535(2^16-1) 
unsigned int 0~4294967295(2^32-1)
#include 
#include 
int main()
{ 
 //值的溢出
unsigned char a = 257;
 //0-255
char b = 129; 
//-128~+127 
printf("a:%hhun",a);
 // u -->unsigned int h:half h:half 0 1 2
printf("b:%hhdn",b); 

11 打印结果:
12 a:1
13 b:-127

5、整型数据在内存中的存储方式

整型数据(正数 、负数)在内存中是以二进制补码的方式存放的

总结1

1)当编译器 以整形的方式输出的时候(%d),它是以补码还原的方式进行解读。
2)当CPU将数据进行运算的时候,直接以内存中存放的形式进行运算,也就是数据运算的时候 使用补码
3) 以 %u的方式 输出 ,那么 值的范围 : 0 ~4294967295

(1)
unsigned char a = 255; // 0-255
char b = 255; //-128~ +127
printf("%d %un",a,a);
printf("%d %un",b,b);
255 255
-1 4294967295
(2) 
unsigned short a = -1; // 0 - 65535
int b = a; //a == 65535
printf("%dn",a); //a == 65535
printf("%dn",b); //b == 65535
(3)
unsigned char a = -1; // 0 - 255
unsigned int b = -1; // 0 ~4294967295
printf("%d %un",a,b); // 255 4294967295
6、char类型 数据 ----单个字符数据
 字符常量 'a' 'c' '1' 
char val1 = 'a'; 
char val2 = 'b'; 
printf("val1: %c %dn",val1,val1);
printf("val2: %c %dn",val2,val2);
val1: a 97
val2: b 98

97、98为ASCIL输出值

7、ascii 码

概念:char数据实际上是在内存存放的是一个小于255的编号(五符号整数)用来表示字符,这个编号叫做ASCII码。

如何查看 ascii 码??
直接在虚拟机 man acsll

8、转义字符概念:

所有的ASCII码都可以用“”加数字(一般是8进制数字)来表示。而C中定义了不能显示的ASCII字符,如’’,’t’,’n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。它告诉编译器需要用特殊的方式进行处理

1 ‘n’ —表示换行
2 ‘’ —表示空字符 字符串的结尾 就是以 空字符 为结束 “hello” —>默认会在后面加上 "
3 ‘t’ --制表符 按下 table按键的时候

’dd’ ddd表示1到3位八进制数,打印效果为该数字对应的ASCII字符 ,
d 为 0
‘xhh’ hh表示1到2位十六进制数,打印效果为该数字对应的ASCII字符

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号