数据表示和进制转换

输入计算机的数字、字符、符号等信息必须转换成0、1组合的数据形式才能被计算机接收、存储并进行运算。能够进行算术运算并且得到明确的数值的数据概念的信息叫数值数据,其余的信息成为非数值数据。

权:每位数的数值。

基数:指该进位制中允许选用的数码的个数。

数值数据的表示

数值数据的计数方式是进位制,方式按进位的方式计数的数制都叫进位制。用有限的数码表示,例如二进制、八进制、十进制、十六进制。

二进制

基数为2的进制叫二进制,只有0和1两种数码,逢二进一,英文缩写BIN(前缀是0b)。

数据的最小单位:bit位

数据的基本单位:byte字节

1 Byte = 8 bit

1 KB = 1024 Byte

1 MB = 1024 KB

1 GB = 1024 MB

1 TB = 1024 GB

1 PB = 1024 TB

二进制转换成十进制

0b 1010 = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 8 + 2 = 10

0b 1111 = 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0 = 8 + 4 + 2 + 1 = 15

十进制转换成二进制

短除法

除以2取余数,逆序排列,高位补零

例如:100

100/2 = 50 …… 0

50/2 = 25 …… 0

25/2 = 12 …… 1

12/2 = 6 …… 0

6/2 = 3 …… 0

3/2 = 1 …… 1

1/2 = 0 …… 1

得出二进制数据:0b 0110 0100

拆分法

例如:

74=64+8+2 = 0b 0100 1010

计算器

八进制

基数为8的进制称为八进制,0、1、2、3、4、5、6、7作为码数,逢八进一,英文缩写OCT。(前缀是:0)

八进制转换成十进制

例如:

0177 = 1*8^2 + 7*8^1 + 7*8^0 = 127

十进制转换成八进制

可以通过短除法,像十进制转换成二进制一样;或者先转换成二进制,再转换成八进制(三位二进制数据转换成一位八进制数据)。

二进制转换成八进制

每三位二进制就转换成一位八进制,2^3 = 8

例如:

二进制:0111        八进制:7

二进制:1000        八进制:10

八进制转换成二进制

每一位八进制代表三位二进制,从低位(也就是右边)开始转换,如果不满三位则在左边补零。

例如:

八进制:026            二进制:0b 0001 0110

八进制:04561        二进制:0b 1001 0111 0001

十进制

基数为10的进制叫十进制,0、1、2、3、4、5、6、7、8、9作为码数,逢十进一,英文缩写为:DEC(没有前缀)。

例如:

123 = 1*10^2 + 2*10^1 + 3*10^0

十六进制

基数为16的进制叫十六进制,0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F作为码数,逢十六进一,英文缩写为:HEX(前缀为:0x)。

十六进制转换成十进制

例如:

0x4A = 4*16^1 + 10*16^0 = 64 + 10 = 74

二进制转换成十六进制

每四位二进制能够转换成一位十六进制,2^4 = 16

例如:

二进制:1111            十六进制:F

二进制:1 0000        十六进制:10

十六进制转换成二进制

一位十六机制可以转换成四位二进制,从低位也就是右边开始转换,如果不满四位则左边补零。

例如:

十六进制:A5E1        二进制:0b 1010 0101 1110 0001

非数值数据表示

计算机中数据的概念是广义的,计算机内除了前面提到的数值数据之外,还有文字、符号、图像、语言和逻辑信息等,它们被称为非数值数据,但是它们也是由0、1形式存在的。

字符数据

字符数据主要是指数字、字母、通用符号和控制符号等等,都被计算机内部转换成能够识别的二进制编码形式,国际上普遍采用的一种编码是美国国家信息交换标准代码,简称ASCII,英文全称为American Standard Code Information Interchange,可以用man ascii查阅到该表。

"0"、'0'、0和'\0'的区别

"0"        字符串0

'0'         字符0,对应ASCII码为48

0          数字0

'\0'        空字符

常用字符

'\0'        0           空字符,字符串结束的标志

'\n'       10          换行

'  '        32          空格

'0'        48          字符0

'9'        57          字符9

'A'        65          大写字母A

'Z'        90          大写字母Z

'a'        97          小写字母a

'z'        122        小写字母z

转换

'0' - 48 = 数字0

'9' - 48 = 数字9

大写字母 + 32 = 小写字母

小写字母 - 32 = 大写字母

词法符号

词法符号就是由若干字符组成的有意义的最小语法单位。按照词法符号在程序中的功能,可以分为:关键字、标识符、运算符、分隔符标点符号

关键字

关键字是由系统预定义好的词法符号,有特定的含义,不允许用户重新定义。基本的关键字有存储类型、数据类型、控制语句还有其他的一些关键字。

存储类型

auto(自动型)、static(静态型)、extern(外部引用)、register(寄存器类型)

数据类型

char(字符型)、short(短整型)、int(整型)、long(长整型)、float(单精度浮点型)、double(双精度浮点型)、signed(有符号型)、unsigned(无符号型)、struct(结构体)、union(共用体)、enum(枚举)、void(空类型)

控制语句

if、else、while、do、for、switch、case、default、break、continue、goto、return

其他

sizeof(计算数据所占空间大小)、const(声明只读变量)、typedef(重命名)、volatile(防止编译器优化)

标识符

标识符是由程序员按照命名规则自定义的词法符号,用于宏定义名,变量名,函数名和自定义类型名。

C语言标识符命名规则如下:

  1. 由数字、字母和下划线组成
  2. 标识符第一个字符是字母或者下划线
  3. 不能和关键字重复

注意:大小写敏感,命名有一定的含义,便于记忆,能够增加可读性。

运算符

运算符是表示运算的词法符号,可以按功能分为:算术运算符逻辑运算符关系运算符赋值运算符位运算符其他运算符

  1. 算数运算符:+  -  *  /  %  ++  --
  2. 赋值运算符:=  +=  -=  *=  /=  %=
  3. 关系运算符:>  >=  <  <=  ==  !=
  4. 逻辑运算符:&&  ||  !
  5. 位运算符:&  |  ~  ^  <<  >>

分隔符

分隔符是用来分隔其他词法符号的,主要包括:空格制表符换行符注释。通过对分隔符的恰当使用,能够让代码的外观格式更加清晰易读,代码结构清晰能够帮助分析程序中的语法错误。

标点符号

C语言中的标点符号有逗号分号冒号花括号圆括号。标点符号的作用与分隔符相似,但是用法非常严格,有明确的语法规定。有一些标点符号在程序的表达式中充当运算符使用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C初阶——指针2】鹏哥C语言系列文章,基本语法知识全面讲解——指针(2)

崩刃的剑&#xff0c;依旧致命&#xff0c;锈蚀的盾&#xff0c;屹立如初&#xff08;王者荣耀李信&#xff09; 本文由睡觉待开机原创&#xff0c;转载请注明出处。 本内容在csdn网站首发 欢迎各位点赞—评论—收藏 如果存在不足之处请评论留言&#xff0c;共同进步&#xff0…

Elasticsearch:结合 ELSER 和 BM25 文本查询的相关搜索

Elastic Learned Spare EncodeR (ELSER) 允许你执行语义搜索以获得更相关的搜索结果。 然而&#xff0c;有时&#xff0c;将语义搜索结果与常规关键字搜索结果相结合以获得最佳结果会更有用。 问题是&#xff0c;如何结合文本和语义搜索结果&#xff1f; 首先&#xff0c;让我…

揭秘Linux软链接:如何轻松创建、删除和修改

揭秘Linux软链接&#xff1a;如何轻松创建、删除和修改 一、简介二、创建软链接三、删除软链接四、修改软链接五、Linux软链接的高级用法六、总结 一、简介 在Linux中&#xff0c;软链接&#xff08;Symbolic Link&#xff09;是一种特殊的文件类型&#xff0c;它是一个指向另…

初识对抗生成网络(GAN)

在研究语义通信的时候&#xff0c;发现解码端很多都是用GAN或基于GAN来完成的。带着对GAN的好奇&#xff0c;对GAN进行了一个初步学习。这篇文章介绍一下和GAN相关的一些常识吧~   本文围绕以下几个内容展开&#xff1a;     1.什么是GAN&#xff1f;     2.为什么要…

03-微服务-Ribbon负载均衡

Ribbon负载均衡 1.1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件&#xff0c;来实现负载均衡功能的。 那么我们发出的请求明明是http://userservice/user/1&#xff0c;怎么变成了http://localhost:8081的呢&#xff1f; 1.2.源码跟踪 为什么我们只输入…

FOURANDSIX:2.01

靶场下载 FourAndSix: 2.01 ~ VulnHub 信息收集 # nmap -sn 192.168.1.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-02 10:42 CST Nmap scan report for 192.168.1.1 Host is up (0.00030s latency). MAC Address: 00…

JavaScript 基础三part1.数组

JavaScript 基础三part1.数组 2.1 数组是什么2.2 数组的基本使用&#xff08;1&#xff09;声明&#xff08;2&#xff09;取值&#xff08;3&#xff09;一些术语&#xff08;4&#xff09;遍历数组 2.3 操作数组&#xff08;1&#xff09;修改&#xff08;2&#xff09;新增&…

SpringBoot日志打印Logback详解【子节点详解】【附案例】

笑小枫的专属目录 1. 背景2. 什么是Logback3. SpringBoot使用logback介绍4. 自定义logback配置5. 如何把日志同步到ES中6. logback配置属性详解根节点< configuration>子节点:< property>子节点:< appender>filetargetappendprudentlayout和encoderlayout和e…

Spring的bean的生命周期!!!

一.单例模式 单例&#xff1a;[启动容器]--->通过构造方法&#xff08;创建对象&#xff09;---->调用set方法&#xff08;注入&#xff09;--->调用init方法&#xff08;初始化&#xff09;----[容器关闭]----->调用destroy方法&#xff08;销毁&#xff09; app…

任务需求分析中的流程图、用例图、er图、类图、时序图线段、图形的作用意义

任务需求分析中的流程图、用例图、er图、类图、时序图线段、图形的作用意义 流程图 流程图中各种图形的含义及用法解析 连接线符号 连接各要素&#xff0c;表示流程的顺序或过程的方向。 批注符号 批注或说明&#xff0c;也可以做条件叙述。 子流程 流程中一部分图形的逻辑…

SpringMVC通用后台管理系统源码

SpringMVC通用后台管理系统源码 整体的SSM后台管理框架功能已经初具雏形&#xff0c;前端界面风格采用了结构简单、 性能优良、页面美观大的Layui页面展示框架 数据库支持了SQLserver,只需修改配置文件即可实现数据库之间的转换。 系统工具中加入了定时任务管理和cron生成器&am…

代码随想录27期|Pthon|Day31|贪心算法|理论基础|455.分发饼干|376. 摆动序列|53. 最大子序和

理论基础 首先&#xff0c;贪心算法基本靠“做题感觉”&#xff0c;所以没有规范的总结和做题技巧&#xff0c;只能说见到过之后还能想起来。 一般情况可以看成是对于一个大的问题的子问题的局部最优的求解&#xff0c;然后可以推导出全局的最优。 这个过程没有证明&#xf…

【C#】知识点实践序列之Lock的锁定代码块

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂之知识点实践序列》文章。 2024年第1篇文章&#xff0c;此篇文章是C#知识点实践序列之Lock知识点&#xff0c;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 本篇验证Lock锁定代…

常用环境部署(十三)——GitLab整体备份及迁移

一、GitLab备份 注意&#xff1a;由于我的GitLab是docker安装的&#xff0c;所以我的操作都是在容器内操作的&#xff0c;大家如果不是用docker安装的则直接执行命令就行。 1、Docker安装GitLab 链接&#xff1a;常用环境部署(八)——Docker安装GitLab-CSDN博客 2、GitLab备…

Python常用模块之hashlib

常用模块 - hashlib模块 一、简介 Python的hashlib提供了常见的摘要算法&#xff0c;如MD5、SHA1、SHA224、SHA256、SHA384、SHA512等算法。 什么是摘要算法呢&#xff1f;摘要算法又称哈希算法、散列算法。它通过一个函数&#xff0c;把任意长度的数据转换为一个长度固定的…

C# 全屏label控件实现的贪吃蛇。

C# 全屏label控件实现的贪吃蛇。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using stat…

两阶段提交协议三阶段提交协议

两阶段提交协议 分布式事务是指会涉及到操作多个数据库的事务,在分布式系统中&#xff0c;各个节点之间在物理上相互独立&#xff0c;通过网络进行沟通和协调。 XA 就是 X/Open DTP 定义的交易中间件与数据库之间的接口规范&#xff08;即接口函数&#xff09;&#xff0c;交易…

网络安全—模拟ARP欺骗

文章目录 网络拓扑安装使用编辑数据包客户机攻击机验证 仅做实验用途&#xff0c;禁止做违法犯罪的事情&#xff0c;后果自负。当然现在的计算机多无法被欺骗了&#xff0c;开了防火墙ARP欺骗根本无效。 网络拓扑 均使用Windows Server 2003系统 相关配置可以点击观看这篇文章…

安卓和Android是两种不同的操作系统?

实际上&#xff0c;安卓和Android并不是同一种操作系统&#xff01; Android是由Google开发并维护更新的一款操作系统&#xff0c;目前仅能运行在Pixel手机上。 Google Pixel 与 iPhone手机&#xff1a;哪个更好&#xff1f;Google Pixel 与 Apple iPhone哪个手机才是性价比最…

【 RF 射频 电缆】 MIL-C-17F 标准 规格

第〇、&#xff1f;&#xff1f; RGXXXXX 第一、应用场景 标准号应用场景–&#xff08;–&#xff09;RG-8 RG-9 RG-11粗缆以太网–RG-58细缆以太网–RG-59 RG-75电视系统–RG-62ARCnet网络和IBM 3270网络–RG142电信设备之间的互连 航空电子机架 雷达 GPS 医疗–RG178通信…