C++数的表示
2024-10-09 10:28:55
二进制B
八进制O
十进制D
十六进制H / 0x十六进制
十进制数转换成R进制数:整数部分除基取余,上右下左;小数部分乘基取整,上左下右。
浮点数的阶用一种称为移码的编码表示方法,方便对阶。阶的编码称为阶码(阶用移码表示的01序列)
[E]移=偏置常数+E,偏置常数为2n-1或2n-1-1。
int→float:不溢出、可能舍去(int的有效位数比float多,float24位有效数字最多精确表示7位10进账数字)
int→double、float→double:保留精确值
double→float:可能溢出、可能舍入
float→int:数据向0方向截断
double→int:数据向0方向截断、大的浮点数转换为整数时发生错误
C语言规定,short和int至少16位,long至少32位,且必须满足short≤int≤long,具体由编译器决定
char:8位
short:16位
int:32位
long:IA32中32位、x86-64中64位
long long:ISO C99引入,64位。
long double:ISO C99引入,80位。但在IA32中占96位(12B对齐)、在x86-64中占128位(16B对齐)
Windows中不同类型按数据长度对齐,char型无需对齐
Linux中short地址是2的倍数,int、float、指针、double地址是4的倍数(double可能要访问两次)
struct,编译器使其首地址4B对齐
ASCII码(美国标准信息交换码):b7=0,一般放奇偶校验码
字符0-9:011+8421码
英文字母:b5=0为大写、b5=1为小写
100 0001~101 1010表示a~z
110 0001~111 1010 表示A~Z
外码(输入码):西文键盘某个按键
14位区位码:7位区号(行号)+7位位号(列号)
区号位号各加32(20H)得到14位国标码(国际交换码)
表示汉字的两个字节最高位b7=1,这种16位双字节汉字编码为机内码(汉字内码),当然也可以有不同的编码方案
C语言的基本运算:
①算术运算:+、-、×、/ 、%
②按位运算:|、&、~、∧
③逻辑运算:||、&&、!
④移位运算:无符号数逻辑移位(左移时高位移出低位补0,移出1则发生溢出;右移时低位移出高位补0)
带符号整数算术移位(左移时如果移出的高位不同于移位后的符号位则发生溢出;右移时低位移出高位补符号)
⑤位扩展运算:无符号数0扩展(如unsigned short扩展为unsigned)、符号扩展(如short扩展为int)
⑥位截断运算
最新文章
- React Native踩坑Tip
- IE11下不能引入外部css的解决方法
- Java中比较不同的MD5计算方式
- 使用 Bootstrap Typeahead 组件
- pyhton与json,Xml
- hihoCoder #1181: 欧拉路·二 (输出路径)
- (转)c &; c++内存分配
- win8 mysqlzip install
- Android中GridView拖拽的效果
- xx学院学员评优评奖管理系统
- C++之标准输入输出
- 微信小程序之表单验证
- Android Studio打包SDK后,为什么没有bundles文件夹?
- java的数组
- docker 安装 mongodb
- Python11
- 20175126Apollo 20175126《Java程序设计》结队编程项目——四则运算
- 关于Eclipse的一些简单设置
- java实现中缀表达式转后缀表达式
- mybatis根据数据库表结构自动生成实体类,dao,mapper
热门文章
- SQL Server跟踪工具Profiler的使用
- webpack 4.x版本手动配置
- python学习笔记1 -- 函数式编程之高阶函数 使用函数作为返回值
- MacOS安装npm
- bzoj 1738 [Usaco2005 mar]Ombrophobic Bovines 发抖的牛 最大流+二分
- mysql 常用的数据类型
- Android 生命周期,解决savedInstanceState一直为null的问题
- @RestController注解初步理解
- SpringBoot设置跨域的几种方式
- zuul路由网关集成ssl,实现http到https的转变