发布网友 发布时间:2024-09-26 18:09
共1个回答
热心网友 时间:2024-11-26 11:51
本部分比较简单,简单提提而已,后面难的内容再详细写
数据在内存中表示计算机不能读懂人类的语言和习惯的数据表示 在计算机中,只能读懂二进制的内容,我们的代码和数据都将编译为二进制以供计算机运行。
位:最小的存储单位,能够存储一个位的二进制数,就是一个0或一个1 字节:常用的存储单位,1字节等于8位 字:是计算机的一次能处理的数据长度,现在的电脑一般为64位
二进制表示:B ?八进制表示:O ?或 0开头 十六进制表示: H 或 0x开头 关于进制转换这里不再啰嗦
数据类型c语言提供两大数据类型:整数类型和浮点数类型。 整数类型就是只用整数来表示的数据类型,浮点数自然就是带小数部分的了
整数类型有 类型名称 ? ? | 关键字表示 | -------- | -----|-----| 整型 ?| int | ?短整型 | short int | 长整型 |long int | 双长整型 |long long int | 字符 ?| char |
浮点类型有
类型名称 ? ? | 关键字表示 | -------- | -----|-----| 浮点型 ?| float ?| ?双精度浮点型 ?| double ?|
c99标准添加的类型 类型名称 ? ? | 关键字表示 | -------- | -----|-----| | 布尔 ?| _Bool |
关于大小现在一般来说,int 占4字节内存,short int占2字节,long int占32字节,long long int 占64字节,char占一个字节
但是也只是一般来说,不同机器上可能也不同。 在c语言标准上,只规定了数据类型的最小范围,还规定了short不能比int大,long 不能比int小,long long不能比long 小,并没有规定具体的大小。
关于溢出:每个类型都有自己可以表示的范围,那如果超过范围会有什么效果呢 我们用一个字节的数据来模拟一下 八位数据最大为 1111 1111,这时候再+1,就是1 0000 0000 但是并不会进位到第九个位,超过的数据会被直接抛弃 那数据就变成了 0000 0000 了,考虑符号的话也是一样的过程 需要注意的是这种错误,编译器不会提醒我们!!!
关于常量程序中使用的数字,一般被存储为int类型,超过范围之后编译器会考虑使用更大范围的类型。 如果我们希望编译器使用long类型来存储一个小的数字,可以在其后加L 如 ?1122L 类似的LL 表示 long long
以上说到的,都是用来表示整数的数据 关于字符但是 char 是用来表示字符的,但是在技术层面上其也是一种整数类型 因为它存储的不是实际的字符,而是原来表示字符的ASCII编码,而这个编码是一个整数,范围是0~127,包括了可见字符和转义字符。详细的ASCII码可百度了解
符号关键字 如上数据类型,一般默认是带符号的,就是可以表示负数的 如int的表示范围一般是 ?-32768~32767
但是在某些情况下,我们只需要表示正数,且希望能够表示更大范围的数字 可以声明为无符号数据类型,如无符号int 表示为: unsigned int ?这时,int的4个字节存储空间都将表示正数,范围为 2的32次方
声明无符号关键字: unsigned ?声明有符号关键字:signed
使用变量变量就相当于一个盒子,用来装数据的 使用变量的步骤: 声明(可选择初始化) ---> 赋值 ---> 使用数据
声明就是使用关键字表示 + 变量名, 变量名,只能是字母或下划线开头,后面可以是数字、字母、下划线 如
int a = 9; //声明并初始化为9int c ; // 声明,未初始化float e = 1.4;char g = 'a';赋值:就是 变量名 = 值 如
a = 19;c = 4;e = 3.3;g = 'e';格式化符号这些符号用于输入输出中的格式化,接下来的其他文章中,会有输入输出的说明 | 格式符号| 转换| |----|-----| |%c |字符| |%s |字符串| |%d| ? ?有符号十进制整数| |%u |无符号十进制整数| |%o |八进制整数| |%x |十六进制整数(小写字母0x)| |%X |十六进制整数(大写字母0X)| |%f |浮点数| |%e |科学计数法(小写'e')| |%E |科学计数法(大写“E”)| |%g |%f和%e 的简写| |%G |%f和%E的简写| 另外 前缀 h表示短整型,如 %hd 前缀 l 表示长整型 ,如 %ld
转义字符原文:https://juejin.cn/post/7098506428243001357