###C语言程序设计-----C语言学习(11)#数据的存储和基本数据类型

news/2024/4/24 5:33:26/

 

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。

 

 

 

一.  数据的存储 

 

1.整型数据的存储

  计算机处理的所有信息都以二进制形式表示,即数据的存储和计算都采用二进制。首先介绍整型数据的存储格式,不妨假设每个整数在内存中占用两个字节存储,最左边的一位(最高位)是符号位,0代表正数,1代表负数。

  数值可以采用原码,反码,补码等不同的不同方法。为了便于计算机内的运算,一般以补码表示数值。

原码:

  最高位为符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制。

反码:

  正数的反码与原码一致,负数的反码是对原码按位取反,只是最高位(符号位)不变。

补码:

  正数的补码与原码一致,负数的补码是该数的反码加1。

注意:这里的反码加1是从右边开始加1,同时注意二进制满2进1.

例如以-1为例:(这里取两个字节16位)

  -1的原码是:1000000000000001

  -1的反码是:1111111111111110

  -1的补码是:1111111111111111

一些数值的补码表:

 

2.实型数据的存储

  存储实型数据时,分为符号位,阶码和尾数三部分,如图所示,例如:实数-1.2345e+02是负数,阶码是2,尾数是1.2345.

 

 

3.字符型数据的存储

  每个字符在内存中占用一个字节,存储它的ASCII码。例如字符型常量‘A’的ASCII码为65,转二进制它在内存中以01000001的形式存放。

 

二.   基本数据类型

 

C语言的3种基本数据类型是整型,字符型和实型。

如图所示:

 

 

1.整型与整型常量(整数)

(1)整型

  整型是指不存在小数部分的数据类型。除了基本整型int以外,为了处理不同取值范围的整数,C语言提供了扩展的整数类型,它们的表示方法是在int之前加上限定词short,long或unsigned。

  无符号的整型数据指不带符号的整数,即零或正整数,不包括负数。存储有符号的整型数据时,存储单元的最高位是符号位,其余各位表示数值,存储无符号(指定unsigned)的整型数据时,存储单元全部用于表示数值。 

(2)整型常量

a.整数的表示

  C语言中的整数有十进制,八进制和十六进制三种表现形式。十进制整数由正,负号和阿拉伯数字0~9组成,但首位数字不能是0。八进制整数由正,负号和阿拉伯数字0~7组成,首位数字必须为0.十六进制整数由正,负号和阿拉伯数字0~9,英文字符a~f或A~F组成,首位数字前必须有前缀0x或0X。

b.整数的类型

  判断整数的类型,首先根据整数后的字母后缀。后缀l或L表示long型常量,后缀u或U表示unsigned型常量,后缀l和u或L和U表示unsigned long型常量。如果整数后面没有字母,就根据整数常量的值确定它的类型。

 

2.字符型与字符型常量

(1)字符型

  每个字符型数据在内存中占用一个字节,用于存储它的ASCII码。所以C语言中的字符具有数值特征,不但可以写成字符常量的形式,还可以用相应的ASCII码表示,即可以用整数来表示字符。例如:设ch是字符变量,字符型常量A的ASCII码值是65,则ch=‘A’和ch=65等价。

注意:互换整型变量和字符型变量的定义和值时,整型数据的取值范围是有效的ASCII码。

(2)字符型常量

  字符型常量指单个字符,用一对单引号及其所括起来的字符表示。如‘a’,‘X’,‘!’,‘ ’,(空格符)等都是字符型常量。

a.ASCII字符集

  在ASCII字符集中列出了所有可以使用的字符,每个字符在内存中占用一个字节,用于存储它的ASCII码。

b.转义字符

  有一些字符,如回车符,退格符等控制码,它们不能在屏幕上显示,也无法从键盘输入,只能用转义字符来表示。转义字符由反斜杠加上一个字符或数字组成,它把反斜杠后面的字符或数字转换成别的意义。

如图所示:

 

 

3.实型与实型常量(实数)

(1)实型

  实数类型又称为浮点型,指存在小数部分的数。浮点型数据有单精度浮点型(float)和双精度浮点型(double),它们表示数值的方法是一样的,主要区别在于数据的精度和取值范围有所不同。与float型数据相比,double型数据的精度高,取值范围大。

(2)实型常量

  实型常量即常说的实数,又称浮点数,可以用十进制浮点表示法和科学计数法表示。实型常量都是双精度浮点型。

 

感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。

 

 

 


http://www.ppmy.cn/news/1349344.html

相关文章

HiveQL——不借助任何外表,产生连续数值

注:参考文章: HiveSql一天一个小技巧:如何不借助其他任何外表,产生连续数值_hive生成连续数字-CSDN博客文章浏览阅读1.3k次。0 需求描述输出结果如下所示:12345...1001 问题分析方法一:起始值(…

C#使用哈希表对XML文件进行查询

目录 一、使用的方法 1.Hashtable哈希表 2.Hashtable哈希表的Add方法 (1)定义 (2)示例 3.XML文件的使用 二、实例 1.源码 2.生成效果 可以通过使用哈希表可以对XML文件进行查询。 一、使用的方法 1.Hashtable哈希表…

C语言---------对操作符的进一步认识

操作符中有⼀些操作符和⼆进制有关系,我们先学习了⼀下⼆进制的和进制转换的知识。 1.原码、反码和补码。 有符号整数的三种表⽰⽅法均有符号位和数值位两部分, 2进制序列中,最⾼位的1位是被当做符号位,剩余的都是数值位。 符号…

用EXCEL从地址(上海)中提取各区(浦东新区等区)信息

背景: 朋友工作需要经常用EXCEL把各上海用户收货地址中的区提取出来,之前一直手动处理,希望我帮忙用EXCEL公式直接提取处理。 数据样式: 中国上海市浦东新区A小区 上海徐汇区B小区 中国,上海,浦东新区&a…

webgis后端安卓系统部署攻略

目录 前言 一、将后端项目编译ARM64 二、安卓手机安装termux 1.更换为国内源 2.安装ssh远程访问 3.安装文件远程访问 三、安装postgis数据库 1.安装数据库 2.数据库配置 3.数据导入 四、后端项目部署 五、自启动设置 总结 前言 因为之前一直做的H5APP开发&#xf…

Jetbrains系列-历史版本

IntelliJ IDEA 历史版本:https://www.jetbrains.com/idea/download/other.html PyCharm 历史版本:https://www.jetbrains.com/zh-cn/pycharm/download/other.html DataGrip 历史版本:https://www.jetbrains.com/datagrip/download/other…

Red Panda Dev C++ Maker【2.0自创黑客版】使用说明

https://download.csdn.net/download/HappyStarLap/88825258https://download.csdn.net/download/HappyStarLap/88825258Red Panda Dev C(旧名 Dev-C 2000)是 Orwell Dev-C 的改进分支。包括heker.h、Heike.h、easxy.h 和Art_Text.h。Orwell Dev-C 自 20…

缓存穿透问题与解决方案

引言 在分布式系统中,缓存技术被广泛应用以提高系统性能和响应速度。然而,缓存穿透是一个常见而严重的问题,特别是在面对大规模请求时。本文将深入探讨缓存穿透的原因、影响以及一些有效的解决方案,以确保系统在面对这一问…

戴上HUAWEI WATCH GT 4,解锁龙年新玩法

春节将至,华为WATCH GT 4作为一款颜值和实力并存的手表,能为节日增添了不少趣味和便利。无论你是钟情于龙年表盘或定制属于自己的表盘,还是过年用来抢红包或远程操控手机拍全家福等等,它都能成为你的“玩伴”。接下来,…

STM32 FSMC (Flexible static memory controller) 灵活静态内存控制器介绍

文章目录 1. 介绍FSMC2. FSMC特点3. Block示意图4. AHB接口4.1 Supported memories and transactionsGeneral transaction rulesConfiguration registers 5. 外部设备地址映射5.1 NOR/PSRAM地址映射将NOR Flash/PSRAM的支持进行封装 5.2 NAND/PC Card地址映射 1. 介绍FSMC 说到…

猫头虎分享已解决Bug | Rust Error: expected function, found module

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

供应商给社群团购平台及团长们推品的那些事最后一点,几乎所有人都遇到过

快团团对接,品牌方怎么高效地给快团团团长推品? 还在用这种方法推品? 关于供应商给平台及团长们推品的那些事 最后一点,几乎所有人都遇到过 首先我们先说说常见的几种推品方式 1-聊天,上来就是一顿聊,各…

M1 Mac使用SquareLine-Studio进行LVGL开发

背景 使用Gui-Guider开发遇到一些问题,比如组件不全。使用LVGL官方的设计软件开发 延续上一篇使用的基本环境。 LVGL项目 新建项目 选择Arduino的项目,设定好分辨率及颜色。 设计UI 导出代码 Export -> Create Template Project 导出文件如图…

docker compose部署一个远程监控和管理工具

部署 1.编写配置文件 vim docker-compose.yml内容如下 version: "3.7"# networks networks:proxy:driver: bridgeipam:driver: defaultconfig:- subnet: 172.20.0.0/24api-db: nullredis: nullmesh-db: null# docker managed persistent volumes volumes:tactical_…

C# 字体大小的相关问题

设置字体大小无法这么写, button1.Font.Size 20; 这个是只读属性; 把字体大小改为16, button2.Font new Font(button2.Font.Name, 16); 程序运行的时候先看一下窗体和控件的默认字体尺寸,都是9;然后点b…

Java:字符集、IO流 --黑马笔记

一、字符集 1.1 字符集的来历 我们知道计算机是美国人发明的,由于计算机能够处理的数据只能是0和1组成的二进制数据,为了让计算机能够处理字符,于是美国人就把他们会用到的每一个字符进行了编码(所谓编码,就是为一个…

力扣236——二叉树的最近公共祖先

祝大家新年快乐呀,虽这段时间正值过年,但是我们不要忘记停下学习的脚步。今天我们一起看一到力扣上的经典二叉树OJ题,求二叉树两个结点最近的公共祖先。 https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description…

鸿蒙系统对应安卓版本

鸿蒙系统对应安卓版本 使用安卓studio 新建一个app 然后添加代码打印: Log.d(“MainActivity”, "SDK Version: " Build.VERSION.SDK_INT); 或者把 Build.VERSION.SDK_INT 添加到显示的字符串上面 我这里 build.gradle.kts 配置 android {compileSdk…

MybatisPlus Wrapper构造器(查询篇)

笔记:* 依赖MybatisPlus 3.5.5* 自动映射:a) 表名和实体类的映射 -> t_stu 表 Student 实体类:1.当表名和实体类名不一样的时候再实体类类名上加上TableName注解TableName("t_stu")2.也可以在配置文件中配置数据库表名的前缀,配…

飞天使-linux操作的一些技巧与知识点9-zabbix6.0 容器之纸飞机告警设置

文章目录 zabbix 告警纸飞机方式webhook 方式 zabbix 告警纸飞机方式 第一种方式参考 https://blog.csdn.net/yetugeng/article/details/99682432bash-4.4$ cat telegram.sh #!/bin/bashMSG$1TOKEN"61231432278:AAsdfsdfsdfsdHUxBwPSINc2kfOGhVik" CHAT_ID-41dsdde…