当前位置: 首页 > news >正文

25.9.12 C语言基本数据类型

预备知识
A、1 字节(byte)=8 比特(bit)
1个比特即为1个二进制位数

B、%d 按有符号十进制整型数打印
%6d 按十进制整型数打印,至少6个字符宽(指输出的最后一个字符距行首为六字符)如:xxx123
%f 按浮点数打印(默认为小数点后6位)
%6f按浮点数打印,至少6个字符宽
%06f 按浮点数打印,至少6个字符宽,在最前面用0补齐
如:000123
%.2f 按浮点数打印,小数点后有两位小数
%6.2f 按浮点数打印,小数点后有两位小数,至少6个字符宽
%u 按无符号10进制整型数打印
%o 按无符号8进制整型数打印
%x/%X 按无符号16进制整型数打印
(前后加数字原理相同)

C、对于整型储存的数据,printf打印时需用%d
对于浮点型储存的数据,printf打印时需用%f

整型数
存储方法:
无符号整数,在左边用0补齐;带符号整数,最左一位表符号,然后用0补齐剩余位

char
ASCII码字符或者-128~127的整数 1字节
使用例:
char c=’A’ char c=’e’ char c=123
错误示范:
char c=’我’ char a=’123’ char c=129
注意:
1、单引号表示字符常量,一个汉字占两个字符,123为三个字符,若想存储整数,直接打即可
2、若数字超出范围,则会根据数字顺序输出下一个,如128正常输出,129 --> -127
3、若存储字符,打印(printf)时需用%c为格式符;若储存整数,打印时需用%d为格式符

int
ASCII码字符或是-2,147,483,648 到2,147,483,64的整数 4字节
使用基本与char相同

Short/long/long long/unsigned (int)
short的取值范围是-32768~32767
long的取值范围是-2147483648~2147483647
不同环境下,取值范围和占用的长度是不一样的,有如下规则:
short跟int至少为16位(2字节)
long至少为32位(4字节)
short的长度不能大于int,int的长度不能大于long
char一定为为8位(1字节),char是编程能用的最小数据类型

Mac 64bit是LP64,Windows 64bit是LLP64
image

浮点数:
1、类型
float(4字节):
1bit(符号位S) 8bits(指数位E) 23bits(尾数位M)
double(8字节):
1bit(符号位S) 11bits(指数位E) 52bits(尾数位M)
2、储存原理
a、先看符号(S:0正1负)
b、将数字转为二进制
c、规范化
(在二进制内用科学计数法,如(100.111)2 =(1.00111)2*(2^2))
d、找到E、M的值
(E=2的指数+127再转为二进制,M=规范化后的小数点后的数字,如上文中,E=2+127=129=(10000001)2,M=00111)
e、连接SEM,M后多出的位数用0补齐
3、精度
float为6-7位有效数字,double为15-16位有效数字
理解(以float为例):无论是哪个数字,最终写成规范化二进制后,可储存的小数点后位数仅有23位,剩余的位数将被舍弃,说明对应的M有且仅有223=8388608种组合,即位于106到10^7之间,即只能储存到大约前7位有效数字
如20.71428
打印结果为20.714279174804688

http://www.wxhsa.cn/company.asp?id=2165

相关文章:

  • Avalonia:基础导航
  • bashrc的一些配置记录
  • H5游戏性能优化系列-----协议相关优化
  • 实现我的第一个langchain应用
  • 小说可视化系统设计(程序员副业项目)
  • MyEMS与开源浪潮:如何重塑全球能源管理的未来格局
  • React Antd or Antd Pro:findDOMNode is deprecated and will be removed in the next major release.
  • 单板挑战4路YOLOv8!米尔瑞芯微RK3576开发板性能实测
  • doms.ul.querySelectorvs document.querySelector:DOM查询的层级关系
  • 穿越钱塘江:一条高铁隧道背后的技术挑战
  • Pwn2Own Automotive 2025 决赛日:49个零日漏洞与88万美元奖金揭晓
  • 9.HPA与VPA
  • MyEMS在行动:揭秘开源能源管理系统如何重塑工业与楼宇的能效未来
  • 题解:P14015 [ICPC 2024 Nanjing R] 生日礼物
  • 吻得太逼真
  • HyperWorks许可回收机制
  • flink on k8s的基本介绍
  • 高性能计算基础
  • flutter开发window打包成exe可执行文件的步骤
  • Transtion动画组件要求包裹元素必须是单一根节点
  • linux启动ntp服务
  • 企业级 AI Agent 开发指南:基于函数计算 FC Sandbox 方案实现类 Chat Coding AI Agent
  • android开发局域网内通过NTP服务端自动更新系统时间
  • 一招解决Proxmox VE虚拟机磁盘空间耗尽:LVM在线扩容实战 - 若
  • jiaozi
  • 基于Linux系统的定制软件安装硬件设备选型指南
  • c++之is_trivially_default_constructible
  • python3协程学习-async,await
  • 猫树分治
  • Rust太难了。。。。。。。