首页 > 其他分享 >C数据类型(C语言)---变量的类型决定了什么?

C数据类型(C语言)---变量的类型决定了什么?

时间:2024-03-20 13:03:02浏览次数:17  
标签:字节 不同 浮点数 数据类型 整数 C语言 --- 实型

目录

数据类型(Data Type)

变量的类型决定了什么?

(1)不同类型数据占用的内存大小不同

如何计算变量或类型占内存的大小

(2)不同数据类型的表数范围不同

(3)不同类型数据的存储形式不同

整型数

定点数与浮点数

字符型数据(英文字母、数字、控制字符)

(4)不同数据类型可参与的运算不同

整型

实型

字符型

指针类型

小结

不同类型的变量

讨论


数据类型(Data Type)

在冯·诺依曼体系结构中

*程序代码和数据都是以二进制存储的

*对计算机系统和硬件本身而言,数据类型的概念并不存在

问题:高级语音为什么要区分数据类型?

*更有效地组织数据,规范数据的使用

*有助于提高程序的可读性,方便用户的使用

在程序设计语音中引入数据类型的好处

*带来了程序的简明性和数据的可靠性

*有助于提高程序执行效率、节省内存空间

变量的类型决定了什么?

*占用内存空间的大小

*数据的存储形式

*合法的表数范围

*可参与的运算种类

(1)不同类型数据占用的内存大小不同

int ——基本整型,C标准未规定,系统相关

*在目前大多数系统上占4个字节

short int ,简写为short

 *短整型,2个字节

long int,简写为long

*长整型,4个字节

unsigned——无符号整型(正整数和0)

*用来修饰int、short和long

float

*单精度实型,4个字节

double

*双精度实型,8个字节

long double

*长双精度实型,IEEE规定10个字节,系统相关

*VC++中占8个字节

char 

*字符型,1个字节

注意:绝对不能对变量所占的内存字节数想当然

如何计算变量或类型占内存的大小

问题:如何计算变量占内存空间的大小?

用sizeof运算符

一元运算符

用sizeof运算符计算变量占内存空间的大小的好处

增加程序的可移植性

编译时执行的运算符,不会导致额外的运行时间开销

一般形式:

语法形式运算结果
sizeof(类型)类型占用的内存字节数
sizeof(变量或表达式)变量或表达式所属类型占的内存字节数

(2)不同数据类型的表数范围不同

有符号和无符号整数的表数范围也不同

以2字节(16位)短整型为例

*有符号整数的最高位是符号位,使其数据位无符号整数的数据位少了1位

*有符号整数能表示的最大整数的绝对值仅为最大无符号整数的一半

(3)不同类型数据的存储形式不同

整型数

一个多字节的数据是如何存放到存储单元中的呢?

高位字节地位字节

小端次序(Little-endian)

便于计算机从低位字节向高位字节运算

···

低位字节

高位字节
···

大端次序(Big-endian)

与人们从左到右的书写顺序相同,便于处理字符串

···
低位字节
高位字节
···

问题:如何存储实型数呢?

关键:确定小数点的位置

问题:如何表示实型数?

小数形式

指数形式——科学计数法

整数部分小数部分

定点数(Fixed Point)

小数点的位置固定

定点整数

定点小数

定点数与浮点数

定点小数(纯小数)——小数点位于符号位和最高数值位之间

定点整数——小数点位于数值位的最低位

问题:如何表示实型数?

小数形式

整数部分小数部分

指数形式——科学计数法

指数部分小数部分

浮点数实现小数点位置可浮动的主要原因

将实数拆分成了阶码(Exponent)和尾数(Mantissa)分别存储

对于同样的尾数,阶码的值越大,则浮点数所表示的数值的绝对值就越大

同样是4个字节(32位)

  *定点数表数范围受其二进制位数的限制——值域都是有限的

在计算机中通常是用定点数来表示整数和纯小数

用浮点数表示既有整数部分、又有小数部分的实数

字符型数据(英文字母、数字、控制字符)

以二进制编码方式存储,一个字节保存一个字符

字符编码方式

*取决于计算机系统所使用的字符集

*ASCII(美国标准信息交换码)字符集

*每个字符有一个编码值(查ASCII码表)

*字符常数就是一个普通整数

(4)不同数据类型可参与的运算不同

整型

*加、减、乘、除、求余

实型

*加、减、乘、除

字符型

*加、减(整数)

*对ASCII码值的运算

指针类型

*加、减(整数)和比较运算

小结

不同类型的变量

占用内存空间的大小不同

       *用sizeof运算符计算变量占内存空间

数据在内存中的存储形式不同

合法的表数范围不同

可参与的运算种类不同

讨论

计算机为什么采用浮点数而非定点数来表示实数?

浮点数是实数的精确表示吗?

既然浮点数相对于整数能够表示更大的数,那么是否可以用浮点数取代整数呢?

标签:字节,不同,浮点数,数据类型,整数,C语言,---,实型
From: https://blog.csdn.net/hangweijie/article/details/136812960

相关文章

  • C#实战分享--爬虫的基础原理及实现
    关注我,持续分享逻辑思维&管理思维;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自我介绍》《做好面试准备,迎接2024金三银四》。推荐热榜内容:《架构实战--以海量存储......
  • 《牛客》-E魔法之森的蘑菇(经典BFS变种)
    思路:由于某些固定方向的情况,我们将到达该点的粒度划分成从那个方向的到达该点,及基础bfs为每个点可以到达一次,变成没个点可以到达四次(四个方向)用一个三维数组进行标记vis[N][N][4],其余细节看下方ACcodeACcode:#include<bits/stdc++.h>usingnamespacestd;#defineendl......
  • 庆军之菜鸟记录-定期检查并删除数据
    不得不说,跟大佬们的差距是亿点点啊。1privateasyncTaskExpiryScanLoop()2{3varcancelToken=_scanExpiryCancellationToken!.Token;4while(cancelToken.IsCancellationRequested==false)5{6try7{8await......
  • L2-032 彩虹瓶
    纯模拟,一次就AC了。#define_CRT_SECURE_NO_WARNINGS#include<bits/stdc++.h>usingnamespacestd;vector<int>huoja;//货架queue<int>order;//发货顺序intmain(){ intn,m,k;//颜色数量货架容量发货顺序 cin>>n>>m>>k; while(k--){ h......
  • 计算机电子书 (二)- Java
    书名有夸克网盘超链接,点击后可免费快速下载。(内容完善中)~~~文章目录前言一、Java1.基础2.并发和多线程3.虚拟机4.设计模式二、JavaEE和Spring三、SpringBoot四、SpringCloud、微服务五、优化性能重构前言计算机电子书籍一、Java1.基础Java编程思想(第4版)......
  • 开源模型应用落地-qwen模型小试-Zero/One/Few Shot-进阶篇(九)
    一、前言  Zero-Shot、One-Shot和Few-Shot是机器学习领域中重要的概念,特别是在自然语言处理和计算机视觉领域。通过Zero-Shot、One-Shot和Few-Shot学习,模型可以更好地处理未知的情况和新任务,减少对大量标注数据的依赖,提高模型的适应性和灵活性。这对于推动人工智能在现实......
  • 华为OD机试真题-推荐多样性-2024年OD统一考试(C卷)
    题目描述:推荐多样性需要从多个列表中选择元素,一次性要返回N屏数据(窗口数量),每屏展示K个元素(窗口大小),选择策略:1. 各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一个元素,再从第二个列表中为每屏选择一个元素,依次类推2. 每个列表的元素尽量均分为N份,如果不够N个,也......
  • Nuxt.js安装Pinia与pinia-plugin-persistedstate
    pinia安装安装npmi@pinia/nuxt添加到nuxt.config.tsexportdefaultdefineNuxtConfig({modules:['@pinia/nuxt'],})pinia-plugin-persistedstate安装安装pnpm:pnpmi-D@pinia-plugin-persistedstate/nuxtnpm:npmi-D@pinia-plugin-persiste......
  • 01-java面试题-----java基础——20题
    文章目录<fontcolor="red">1、java语言有哪些特点:<fontcolor="red">2、面向对象和面向过程的区别<fontcolor="red">3、标识符的命名规则。<fontcolor="red">4、八种基本数据类型的大小,以及他们的封装类<fontcolor="red">5、instanceof关键字的作用......
  • CAD学习日志-003
    *******************************************************/ 保存默认自动保存间隔是10分钟(可改),自动创建备份副本。一般保存为2007的一个版本。向上兼容,便于交流。*******************************************************/ 加密20版本以上,可以保存为一个压缩包,然后对......