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

 

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

 

 

 

一.  数据的存储 

 

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.hqwc.cn/news/464933.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python:解析获取连续的重叠对pairwise

简介:pairwise函数,返回从输入迭代器获取的重叠对的迭代器,是Python 3.10 新特性,表示一个迭代器从对象中获取连续的重叠对,在某些场景中可以优化代码运行效率。pairwise 函数是一种用于处理列表中元素之间配对操作的通…

基于Python的信息加密解密网站设计与实现【源码+论文+演示视频+包运行成功】

博主介绍:✌csdn特邀作者、博客专家、java领域优质创作者、博客之星,擅长Java、微信小程序、Python、Android等技术,专注于Java、Python等技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 …

VsCode中常用的正则表达式操作

在vscode中可以使用正则表达式来进行搜索内容,极大的方便了我们对大量数据中需要查看的信息进行筛选,使用正则搜索时点击 .* 此文章会持续补充常用的正则操作 1.光标选中搜索到的内容 将搜索的内容进行全选,举例:在如下文件中我需…

Unity类银河恶魔城学习记录3-6 Finalize BattleState源代码 P52

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Enemy.cs using System.Collections; using System.Collections.Generic; …

mysql 中文编码问题

前言 最近在学springboot整合mybatisplus技术,用到mysql数据库,然后发现在windows下插入数据表会出现中文乱码现象 (例如 “我是谁” 在数据库中就成了 “???”) windows show variables like %char%;建表时, 设置默认charset为gbk create table u…

Go语言每日一练——链表篇(八)

传送门 牛客面试笔试必刷101题 ----------------两个链表的第一个公共结点 题目以及解析 题目 解题代码及解析 解析 这一道题使用的还是双指针算法,我们先求出两个链表的长度差n,然后定义快慢指针,让快指针先走n步,最后快慢指…

P1028 [NOIP2001 普及组] 数的计算题解

题目 给出正整数n,要求按如下方式构造数列: 只有一个数字n的数列是一个合法的数列。在一个合法的数列的末尾加入一个正整数,但是这个正整数不能超过该数列最后一项的一半,可以得到一个新的合法数列。 请你求出,一共…

【报错解决】-bash: export: `-8‘: not a valid identifier 不是有效的标识符

现象 一登陆就提示-bash: export: -8’: not a valid identifier 不是有效的标识符 问题出现的原因 设置字符集时多写了空格 [rootdb1 ~]# cat >>/etc/profile<<EOF export LANGen_US.UTF -8(-8前不应有空格) EOF 解决方法 cd /etc vi profile 把export带有-8的…

「C++ 类和对象篇 10」初始化列表

目录 一、什么是初始化列表&#xff1f; 二、为什么需要初始化列表&#xff1f; 三、初始化列表怎么使用&#xff1f; 3.1 在构造函数中使用初始化列表 3.2 注意 3.3 结论 3.4 应用场景 四、初始化列表的初始化顺序 五、另一种初始化成员变量的方法 【总结】 一、什么是初始化…

快速幂的应用

1.非递归的解法 #include <iostream> using namespace std; int main(){int a,b,c,t1;cin>>a>>b>>c;if(a>2&&a<1e3&&b>0&&a<1e7&&c>2&&c<1e5)for(int i0;i<b;i)tt*a%c;cout<<t;r…

51单片机编程应用(C语言):篮球比赛计分器

设计思路 1.LCD1602显示A 000:B 000 右下角显示24的数字&#xff0c;显示一节时间12&#xff1a;00. 2.规定矩阵键盘每一位表示的含义 s1按下&#xff0c;A队加一分 s2按下&#xff0c;A队加两分 s3按下&#xff0c;A队加三分 s4按下&#xff0c;A队减一分 如…

[数学]高斯消元

介绍 用处&#xff1a;求解线性方程组 加减消元法和代入消元法 这里引用了高斯消元解线性方程组----C实现_c用高斯消元法解线性方程组-CSDN博客 改成了自己常用的形式&#xff1a; int gauss() {int c, r; // column, rowfor (c 1, r 1; c < n; c ){int maxx r; //…