数据与C(位,字节,进制转换和C数据内部存储)

news2025/1/10 2:55:01

程序的运行离不开数据,所以在本数据章节我们会比较详细的讲解不同数据的重要内容

本章主要讲解一些基础知识便于后面后面的数据类型学习,如果本章知识都懂的同学可以直接从下章开始阅读

目录

一.常量和变量

二.位,字节和字

三.四种进制形式

1.简单介绍

2.将十进制打印成八进制和十六进制。

3.将十进制打印成二进制

四.C语言数据的存储

五.C语言的数据类型及关键字

一.常量和变量

常量:在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变化

比如 #define pi 3.14 这里就是pi包含数据3.14的常量(#define 也是一个预处理指令)

变量:在运行期间可能会改变或被赋值

如 int num = 1; 这里num就是一个变量,值可以随时改变。而一般情况下使用常量可以用#define来定义,或者直接使用数字计算就好了。而存储一个值的变量一般也称之为标量变量

在这个程序当中。a为变量,10和MAX都是常量

二.位,字节和字

位:计算机最小的存储单元(内存的基本构建块),可以存储0或1

字节:常用的计算机存储单位,对于所有计算机来说,1字节等于8位,8位就相当于2的8次方等于256,所以可以表示0~255的整数和一组字符

字:设计计算机时给定的自然存储单位,对于8位的微型计算机,那么一个字长只有8位,现在计算机字长一般都为32位或64位的了,计算机的字长越大,其数据转移越快,允许的内存访问也就更多

1 Byte =8 bit

1 KB = 1,024 Bytes = 8192 bit

1 MB = 1,024 KB = 1,048,576 Bytes

1 GB = 1,024 MB = 1,048,576 KB

1 TB = 1,024 GB = 1,048,576 MB

三.四种进制形式

1.简单介绍

1.十进制:以0~9数字组成,不能以0开头。显示十进制:%d

2.二进制:由0和1两个数字组成

3.八进制:由0~7数字组成,以0开始。显示八进制: %o。显示八进制数同时显示前缀: %#o

4.十六进制:有0~9和A(10)B(11)C(12)D(13)E(14)F(15)组成,以0x开始。显示十六进制: %x。显示十六进制数同时显示前缀: %#x

计算机内部是基地为2的数值系统。(基底为2就是每一位的编号对应2的相应指数)

2.将十进制打印成八进制和十六进制。

下面我们来看个例子,将十进制打印成为八进制和十六进制

3.将十进制打印成二进制

将十进制打印成二进制,这里没有现成的占位符或函数给我们用,所以我们必须自己编写响应功能的函数。我这里给大家讲解一个。这个函数的算法逻辑思维就是

除2取余,逆序排列

我们都知道,想把十进制转换为二进制,就必须不断先除十进制数,如果整除对应余数为0,否则为1。然后接着除以上一次的商。

而用编程思维实现,先建立一个转换函数。然后通过传递给函数一个实参,将实参先%2得到余数,然后在/2给到这个函数,进行递归。直到<2后就判断结束。这里大家自己先用着试试。因为涉及到很多后面的知识点,所以这里只需要大概了解下就好了。

这是代码源码,大家可以在自己电脑上面试试

十进制转换为二进制打印:

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>


void decimal_binary(int decimal);


int main()

{

int a = 173;

printf("十进制a: %d ", a);

printf("二进制a:");

decimal_binary(a);

return 0;

}


void decimal_binary(int decimal)

{

if(decimal > 1)

{

decimal_binary(decimal / 2);

}

printf("%d", decimal % 2);

}

四.C语言数据的存储

其实C语言的数据其实就两大类整数和浮点数(字符其实也算整数。而字符串就是字符组)。为啥为这样呢。因为计算机内部就是二进制,只有0和1,所以本质上,都是数据的存储和输出都是二进制格式的不断转换。

我们首先来看整数存储

整数是啥样子的。比如7是整数,但7.0就不是整数而是一个浮点数。0.7e1也是浮点数。

以一个字节来展示,置于为啥呢,因为整数的类型有很多,不同的整数类型,所占用的内存呢字节都不一样,所以为了方便理解,我们就用一个字节进行理解)

而浮点数的存储则分为了两个部分,小数部分和指数部分

比如7以浮点数存储(0.7e1),小数部分0.7,指数部分就是1

五.C语言的数据类型及关键字

Int:整数类型,占4各字节(32位),用占位符%d打印

Long:长整型类型:占内存空间比int多(不一定,具体的可以用 printf("%zd",sizeof(long))看一下),用占位符%ld打印

Short:短整数:占内存空间比int少,用占位符%hd打印

Unsigned:无符号的整数类型,用占位符%u打印

Char:字符,用占位符%c打印

Float:单精度浮点数,用占位符%f打印

Double:双精度浮点数,用占位符%lf打印


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/337727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BI-SQL丨ALL、ANY、SOME

ALL、ANY、SOME ALL、ANY和SOME&#xff0c;这三个关键字&#xff0c;在SQL中使用频率较高&#xff0c;通常可以用来进行数据比较筛选。 注&#xff1a;SQL中ALL的用法和DAX中ALL的用法是完全不同的&#xff0c;小伙伴不要混淆了。 那么三者之间的区别是什么呢&#xff1f; A…

spring 笔记

一、spring概述 1.1 spring介绍 spring是一个轻量级的控制反转和面向切面的容器框架&#xff0c;用来解决企业项目开发的复杂度问题---解耦 轻量级&#xff1a;体积小&#xff0c;对代码没有侵入性控制反转&#xff1a;IOC inverse of control&#xff0c; 把创建对象的工作交…

JUC并发编程Ⅰ -- Java中的线程

文章目录线程与进程并行与并发进程与线程应用应用之异步调用应用之提高效率线程的创建方法一&#xff1a;通过继承Thread类创建方法二&#xff1a;使用Runnable配合Thread方法三&#xff1a;使用FutureTask与Thread结合创建查看进程和线程的方法线程运行的原理栈与栈帧线程上下…

MAC Boook打印长图

有时老师给留的作业是一张长图&#xff0c;直接打印或者通过把图放入word打印都不能实现把长页分成多页进行打印。通过网上找到思路可以通过EXCEL实现将长图分成多页打印。 测试版本 macos&#xff1a;ventura 13.1 office 365 注&#xff1a;同样适用windows版本的excel 第…

cass10.1+鸿业生成平纵横数据

cass10.1鸿业生成平纵横数据前言1 纵断面数据获取1.1 数据准备1.2 纵断面桩号设置&#xff08;1&#xff09;桩号设置&#xff08;2&#xff09;桩号标注&#xff08;3&#xff09;标注显示1.3 高程数据处理1.4 纵断面里程标高文件生成2. cass10.1生成横断面数据2.1 生成横断面…

区块链技术与应用2——BTC-数据结构

文章目录比特币中的数据结构1. 区块链&#xff08;block chain&#xff09;2. 默克尔树&#xff08;Merkle tree&#xff09;3.哈希指针的问题比特币中的数据结构 1. 区块链&#xff08;block chain&#xff09; 哈希指针&#xff1a; &#xff08;1&#xff09;保存数值的位置…

基于 Python 实时图像获取及处理软件图像获取;图像处理;人脸识别设计 计算机毕设 附完整代码+论文 +报告

界面结果:图像获取;图像处理;人脸识别 程序结构设计 图形用户界面设计与程序结构设计是互为表里的。或者说,程序结构设计是软件设计最本质、最核心的内容。徒有界面而内部逻辑结构混乱的软件一无是处。 Windows 操作系统是一款图形化的操作系统,相比于早期的计算机使用的命…

XXL-JOB 任务调度平台实践

XXL-JOB 任务调度平台实践一、调度中心(服务端)1、从gitbub 获取项目源码&#xff1a;[https://github.com/xuxueli/xxl-job](https://github.com/xuxueli/xxl-job)2、从源码中得到SQL脚本创建和初始化数据库3、Maven 编译打包 xxl-job-admin 并部署为调度中心4、启动运行 xxl-…

Linux 编译器 gcc/g++

本文已收录至《Linux知识与编程》专栏&#xff01; 作者&#xff1a;ARMCSKGT 演示环境&#xff1a;CentOS 7 目录 前言 正文 gcc/g常用命令 自定义可执行程序名命令-o 预处理指令-E 编译指令-S 汇编指令-c 链接指令gcc 命令巧记口诀 链接库 动态库-动态链接 静态库…

双11大型互动游戏“喵果总动员” 质量保障方案总结

推荐语&#xff1a;互动游戏是一个系统化工程&#xff0c;在笔者的“喵果总动员”质量方案中&#xff0c;可以看到为保障用户体验&#xff0c;我们在各个难点的解决方案&#xff0c; 例如&#xff1a;用线上压测能力支持业务及时调整各服务容量、通过强化学习覆盖游戏行业的测试…

设计师一定要知道这几个网站,解决你80%的设计素材。

本期推荐一波设计师必备的设计素材网站&#xff0c;设计党赶紧马住&#xff01;能解决你日常设计中80%的素材。 1、菜鸟图库 菜鸟图库-免费设计素材下载 这是一个为新手设计师提供免费素材的设计网站&#xff0c;站内有超多平面模板、海报、UI设计、电商设计等相关素材&#x…

数据与C(浮点数)

目录 一.基本概念 二.声明和初始化 三.浮点数上溢和下溢 浮点数在数据类型上一共就两个&#xff0c;一个是float&#xff0c;另一个是double。但两个唯一的区别就在于double精度方面是float的两倍 一.基本概念 首先介绍浮点数的三种书写形式 第一种 数字 &#xff1a;103…

K近邻算法和KD树详细介绍及其原理详解

相关文章 K近邻算法和KD树详细介绍及其原理详解 文章目录相关文章前言一、K近邻算法二、KD树总结前言 K近邻算法一般是我们学习机器学习的入门算法&#xff0c;本篇文章详细介绍了K近邻算法&#xff0c;并对其原理进行了说明。同时&#xff0c;为了优化K近邻算法查找最近K个邻…

Spring工厂模式

解决方案1:工厂模式 可以使用抽象工厂模式&#xff0c;让StudentDao、StudentService的实现在在工厂中生成&#xff0c;而工厂可以根据配置 文件的指定类型来创建不同的对象&#xff0c;而且工厂本身一般是不变的。从而降低了对可以变的业务逻辑类的 依赖&#xff0c;接近的软…

字节青训前端笔记 | 数据可视化基础

本课程主要内容可以分为三个章节&#xff1a; 数据可视化的基本概念可视化设计的基本原则面向前端的可视化工具 本手册可以作为学生学习数据可视化的“学习指南”&#xff0c;按照手册所列内容&#xff0c;结合扩展资料进行系统的学习和实践。本课程没有讨论更为前沿的可视化…

推荐5款干净又实用的软件

我们在使用电脑的时候&#xff0c;总是会用到一些好用的软件&#xff0c;今天分享这5款干净又实用的软件&#xff0c;实在是太好用了&#xff0c;我不允许你不知道。 1.桌面工具——火柴 火柴是一款集快速搜索&#xff0c;程序启动、本地文件查找、网站直达、网络搜索等多种功…

OSACN-Net:使用深度学习和Gabor心电图信号谱图进行睡眠呼吸暂停分类

这篇文章在之前读过一次&#xff0c;其主要的思路就是利用Gabor变换&#xff0c;将心电信号转变为光谱图进行识别研究&#xff0c;总体来讲&#xff0c;不同于其他的利用心电信号分类的算法&#xff0c;该论文将心电信号转换为光谱图&#xff0c;在此基础上&#xff0c;分类问题…

java面试题(二十)中间件redis

1.1 Redis可以用来做什么&#xff1f; 参考答案 Redis最常用来做缓存&#xff0c;是实现分布式缓存的首先中间件&#xff1b;Redis可以作为数据库&#xff0c;实现诸如点赞、关注、排行等对性能要求极高的互联网需求&#xff1b;Redis可以作为计算工具&#xff0c;能用很小的…

基于微信小程序 java高校后勤报修系统 Springboot校园报修管理系统

1绪论 5 1.1项目研究的背景 5 1.2开发意义 5 1.3项目研究内容 5 2开发技术介绍 6 2.1 B/S架构 6 2.2Java技术 6 2.3MySQL 介绍 7 2.4MySQL环境配置 7 2.5SpringBoot技术 8 3系统分析 9 3.1可行性分析 9 3.1.1技术可行性 9 3.1.2经济可行性 9 3.1.3操作可行性 9 3.2网站性能需求…

跟开发打了半个月后,我终于get报bug的正确姿势了

在测试人员提需求的时候&#xff0c;大家经常会看到&#xff0c;测试员和开发一言不合就上BUG。然后开发一下就炸了&#xff0c;屡试不爽&#xff0c;招招致命。 曾经看到有个段子这么写道&#xff1a; 不要对程序员说&#xff0c;你的代码有BUG。他的第一反应是&#xff1a;…