IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言:三、基本类型 -> 正文阅读

[C++知识库]C语言:三、基本类型


三、基本类型

3.1 整型类型

  1. 有符号signed——short, int, long, long long
  2. 无符号unsigned——short, int, long, long long
    (0表示整数 1表示负数)

基本整型int: 4个字节(默认)
短整型short int: 2
长整型long int: 4
双长整型long long int: 8

  1. 进制——十进制、八进制、十六进制、二进制

十进制

0~9
123.45=(1 * 10 ^ 2)+(2 * 10 ^ 1)+(3* 10 ^ 0)+(4* 10 ^ -1)+(5* 10 ^ -2)

10进制->2进制
1.基数相除,倒序取余 2.一直凑

10进制转8进制
(1.将其转换成2进制 2.从右向左,三三分组,左边不够的话补符号位)

10进制转16进制
(1.将其转换成2进制 2.从右向左,四四分组,左边不够的话补符号位)

其他进制转10进制
按权重展开相加

八进制

8进制转16进制
先变成2进制,再转16进制

十六进制

0~9,abcdef/ABCDEF(10、11、12、13、14、15)
0011 0100 1010 1111 1011 1110 1101 1010
34afbeda
1字节——8位——2个(十六进制)数字
按权展开求和:
123(16)=291(10)

进制转换

b=10十进制
b=012八进制
b=0xa十六进制

二进制

0~1
1011.1=(1 * 2 ^ 3)+(0 * 2 ^ 2)+(1* 2 ^ 1)+(1* 2 ^ 0)+(1* 2 ^ -1)=8+2+1+0.5=11.5
权重:128(7) 64(6) 32(5) 16(4) 8(3) 4(2) 2(1) 1(0)
整型: int~4 byte (1 byte字节=8bit位)
bit位——二进制——0/1

3.2 浮点类型

  1. float
  2. double
  3. long double

单精度浮点型:float 4个字节
双精度浮点型:double 8个字节(默认)
复数浮点型

存储

单精度浮点值:

32位=1(符号)+8(指数)+23(尾数)

  1. 符号位(1个字节):
    0正,1负

  2. 指数位(8个字节):unsigned char
    0~ (127) ~255
    实际指数+127 = 存储指数
    指数取值范围:-127 ~ 127(2^指数)——38

  3. 尾数位(23个字节):有效值
    存储的是1.后面的值,不足补0
    尾数~精度(有效个数):6 ~ 7位
    2^23——7-1=6位
    例0~30 ——1位

例:对于:12.5二进制=1100.1
1100.1=1.1001*2^3
指数位:3(实际指数) -> 3+127 = 130(存储指数)=1000 0010
尾数位:1001+19个0
存储:0 10000010 10010000000000000000000
二进制:0100 0001 0100 1000 0000 0000 0000 0000
十六进制:4 1 4 8 0 0 0 0
真实地址:00004841

0x12345678
小端:低地址放低数据(PC、inter)
78 56 34 12
大端:低地址放高数据(手机ARM,网络)
12 34 56 78

双精度浮点值:

64位=1(符号)+11(指数)+52(尾数)

  1. 符号位(1个字节):
    0正,1负

  2. 指数位(8个字节):unsigned char
    0~ (1023) ~2047
    实际指数+1023 = 存储指数

  3. 尾数位(23个字节):有效值
    存储的是1.后面的值,不足补0
    尾数~精度(有效个数):15 ~ 16位
    2^52——16-1=15位

例:对于:12.75二进制=1100.11
1100.11=1.10011*2^3
指数位:3(实际指数) -> 3+1023 = 1026(存储指数)=100 0000 0010
尾数位:10011+48个0
存储:0 10000000010 10011000000000……0000000000

3.7777779 ~ (3.8) ~ 3.80000001

#include <stdio.h>

int main()
{
  double a = 3.8
  double b = a - (int)a;//0.8
  
  b *= 10;//8
  
  int c = (int)b;
  printf("%d\n", c);//7
  return 0;
}
#include <stdio.h>

int main()
{
  const float EPSINON = 0.000001;
  if ((x >= - EPSINON) && (x <=EPSINON))//float类型变量不能精确表示,引入精度值,将其转换成>=或<=的形式
  
  return 0;
}
#include <stdio.h>

int main()
{
  //默认double类型,若使用单精度浮点值float
  float a = (float)3.8;//1、强转
  float a = 3.8f//2、加f或F
  
  return 0;
}

3.3 字符类型

char(迷你整型值)
用类型符char定义字符变量
char c = ‘?’;
把“?”的ASCII代码63赋给变量c
即,char c = 63;

#include <stdio.h>

int main()
{
  char a = 'b';
  printf("%c, %d\n", a, a);//b 98

  a = 100;
  printf("%c, %d\n", a, a);//d 100
  return 0;
}
#include <stdio.h>

int main()
{
  char a = 128;
  printf("%d\n", a);//-128,char类型-128~127,默认有符号
  return 0;
}

1个字节-8个位 能表示的数值可能性有2^8==256种
如果unsigned char(无符号)的范围是0~255
如果 char(默认有符号)的范围是-128 ~ 127

3.4 布尔类型

bool
unsigned char

3.5 类型转换

  1. 隐式转换
  2. 显式转换

原码,反码,补码:

最高位当做符号位:0表示整数 1表示负数

无符号整数:
按权展开相加

有符号整数:

  1. 正数:10:0000 1010
    原码 = 反码 = 补码 = 1010
  2. 负数:
    1.将其绝对值按位取反,得到反码 2.对反码+1得到补码
    10 : 0000 1010
    ~10: 1111 0101
    -10 : 1111 0110
    -12 : 0000 1100—1111 0011—1111 0100
    -13 : 0000 1101—1111 0010—1111 0011
    127: 0111 1111=128-1=1000 0000-1
    -128: 1000 0000—0111 1111—1000 0000
    -1: 0000 0001—1111 1110—1111 1111
    -1+1: 1111 1111+1—10000 0000—0000 0000
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:28:07  更:2021-10-16 19:29:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:53:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码