C语言之基本数据类型和数

目录

算数类型和基本数据类型

 基数

 基数转换

由八进制数、十六进制数、二进制数向十进制数转换

由十进制数向八进制数、十六进制数、二进制数转换

二进制和十六进制的基数转换


在学习基本数据类型之前我们先来学习数。

算数类型和基本数据类型

在前面的学习中我们可以使用int型double型的变量及常量进行加减等算数运算,这种数据类型称为算数类型(arithmetic type)。算数类型是多种数据类型的统称,大体上分为两种类型:

整数类数据类型(integral type):只表示整数

浮点型类(floating type):可表示具有小数部分的数值。

 

整数类型数据是以下数据类型的统称:

枚举型:下一节将会介绍

字符型:表示字符

整型:表示整数

字符型、整形和浮点型只需要使用int或double等关键字就能表示其他数据类型,因此将它们统称为基本数据类型(basic type)


 基数

先来学习整数:我的二伯出生于1963年,这种数值很常见,是以10为基数的十进制数。

在表示数值时,基数是进位的标准。基数为10的十进制数每逢10或10的倍数进位。

 十进制数是我们日常生活中用到的,但对于计算机,所有的数据都是用NO/OFF信号(1和0)表示的。

就接近底层的硬件程序来说,使用二进制数更加适宜,但也存在位数过多的缺点,所以写法上还存在八进制数与十六进制数。

在十进制数中,如果以下10中数字都用完了,就进位为10

0 1 2 3 4 5 6 7 8 9

 如果两位的10—99也用完了,就进位为100

在八进制中用完以下8种数字后就进位为10

0 1 2 3 4 5 6 7

 如果两位的10—77也用完的话,就进位为100

在十六进制数中用完以下16种数字后,F后面的数就是10

0 1 2 3 4 5 6 7 8 9 A B C D E F

 如果10—FF也用完了,还会再进一位,变为100

如下所示,用0—20分别用八进制、十进制、十六进制数表示:

八进制数:1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23  24

十进制数:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

十六进制数:0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14

 二进制只使用0和1两种数字进行表示数值,十进制的0—13用二进制表示就是:

0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101

 基数转换

下面我们学习不同基数间的整数值的相互转换方法

由八进制数、十六进制数、二进制数向十进制数转换

十进制数的每一位都是10的指数幂,所以1998可以理解为:

1998=1*10^3+9*10^2+9*10^1+8*10^0

将这个思路转换到八进制数、十六进制数、二进制数上就能轻松将这些数据转换为10进制数

举例说明:将八进制数123转化为十进制数        

将十六进制数1FD转换为十进制数

将二进制数101转换为十进制数

由十进制数向八进制数、十六进制数、二进制数转换

二进制数有以下规律:

偶数的末位数字为0

基数的末尾数字为1

也就是说,用转化的数除以2所得到的余数就是末位数字的值

例如,十进制数57除以2的余数为1,那么转换为二进制数的末位数字就是1.

我们先对“十进制数转换为十进制数”的方法进行说明,一个数除以10的余数,与这个数的末尾数字相等,例如1962除以10的余数为2,得到196,再除以10余数为6,得到19,再除以10余数为9,得到1,再除以10时,余数为1,商为0停止。

最后将所得到的余数进行逆向排列就可以得到转换后的十进制数。

将10改为2,就是十进制数转换为二进制数的方法了,现在我们用十进制数57转化为二进制数

对于八进制数、与十六进制数也是一样,只是把除数换为8和16而已

例如将57转化为八进制数为71,转化为十六进制数为39


二进制和十六进制的基数转换

二进制数      十六进制数                      二进制数      十六进制数 

0000                    0                                1000                 8

0001                    2                                1001                 9

0010                    3                                1010                 A

0011                    4                                1011                 B

0100                    5                                1100                C

0101                    6                                1101                D

0110                     7                                1110                E

0111                     8                                 1111                F


4位二进制数和1位十六进制数是相互对应的

当我们需要将二进制数转换为十六进制数时,只需每隔开四位,分别转换为1位的十六进制数,从右到左划分,奇数位补0变位4位。

要将十六进制数转换为二进制数,只需反过来操作即可。

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

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

相关文章

Docker 设置国内镜像源

Docker 设置国内镜像源 您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器 具体配置如下: {"registry-mirrors" : ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirro…

Flutter Dart FFI Pointer<Uint8>类型如何转成数组或String

前言 继上一次发布的 Flutter 直接调用so动态库,或调用C/C源文件内函数 内容,最终我选择了第二种方式,直接把整个 Native C 的项目源代码放进了 Flutter 工程里编译(放在iOS的目录是因为它不支持自定义源码路径,Andro…

阶段十-java新特性

JDK9新特性 1.模块化系统 jar包结构的变化 jar -》model -》package -》class 通过不同的模块进行开发 每个模块都有自己的模块配置文件module-info.java 2.JShell JDK9自带的命令行开发,在进行简单的代码调试时可以直接编译使用 可以定义变量,方法&…

大数据与人工智能——神经网络是如何工作的?

大数据与人工智能——神经网络是如何工作的? 我们习惯于去了解所使用工具、中间件的底层原理,本文则旨在帮助大家了解AI模型的底层机制,让大家在学习或应用各种大模型时更加得心应手,更加适合没有AI基础的小伙伴们。 一、GPT与神…

Java实现机考程序界面

机考界面如下(单选题),上方是题目状态,下方是题目,1/5/1是已做题目数量、总共题目数量和答对题目数量。 再看一下多选题的界面。 判断题的界面。 回答正确时的反馈,会给出用时。 回答错误时的反馈&#xff…

社会不教,精英不讲,坎儿还得自己过(揭秘人才成长规律)

推荐大家去看看天涯社区的精华帖子:《社会不教,精英不讲,坎儿还得自己过(揭秘人才成长规律)》 原出处天涯精华帖:《社会不教,精英不讲,坎儿还得自己过(揭秘人才成长规律&…

【教3妹学编程-算法题】消除相邻近似相等字符

插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 3妹:好冷啊, 冻得瑟瑟发抖啦 2…

解决mfc140.dll丢失的方法有哪些?分享3个实测有效的方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“无法加载某某.dll文件”。这些错误通常会导致程序无法正常运行,给用户带来很大的困扰。而mfc140.dll文件丢失就是其中之一。本文将介绍3个解决mfc14…

深入理解Java虚拟机---类加载机制

类加载机制 什么是类加载机制类加载的时机类加载的过程加载验证文件格式验证元数据验证字节码验证符号引用验证 准备解析初始化 类加载器双亲委派模型 什么是类加载机制 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化&#xff…

《PySpark大数据分析实战》-06.安装环境准备

📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP…

Kafka集成springboot

安装kafka,直接到官网下载bin文件,本文使用windows进行使用kafka。 下载之后,第一步,启动zookeeper: zookeeper-server-start.bat ..\..\config\zookeeper.properties 第二步,启动kafka: kafka…

Matlab之让特别大的数字显示全,不用科学计数法的形式

一、常见大数显示形式 matlab会自动将特别大的数字,采用科学计数法显示。 bigNum 1234567890000000000000 二、显示大数所有位数 这里采用的是将数字转为字符,并用定点表示 bigNum 1234567890000000000000; bigNumstr num2str(bigNum, %.0f); % 使用…

如果我忽然嗝屁了,家人怎么继承我的财产

前言 笔者很喜欢的电影《寻梦环游记》有这么一句经典台词:“真正的死亡是世界上没有一个人记得你”。 然而,现实中我们所说的“死亡”,其实就是 他再不能与这个世界、与自己在乎的人有新的互动了。 本文,笔者想写一写 关于死亡的…

Java的String类常用方法 |StringBuilder和StringBuffer

文章目录 String类常用方法字符串查找转化字符串替换字符串拆分字符串截取其他操作方法 字符串的不可变性StringBuilder和StringBufferStringBuilder的介绍面试题 String类常用方法 字符串查找 方法功能char charAt(int index)返回index位置上字符,如果index为负数…

Python polars库:高性能数据操作的利器

更多资料获取 📚 个人网站:ipengtao.com 在数据处理和分析领域,Python一直以来都是一种热门的编程语言。近年来,随着数据量的增加和对性能的需求,一些新的数据处理库也逐渐崭露头角。其中,polars库作为一个…

C++ 11 初识2

一.新的类功能 默认成员函数 原来 C 类中,有 6 个默认成员函数: 构造函数 析构函数拷贝构造函数拷贝赋值重载 取地址重载const 取地址重载 C11 新增了两个:移动构造函数和移动赋值运算符重载。 针对移动构造函数和移动赋值运算符重载有一些需…

Python Paramiko库:SSH远程连接与文件传输实战指南

更多资料获取 📚 个人网站:ipengtao.com 在网络管理和系统运维中,SSH(Secure Shell)是一种广泛用于远程登录和文件传输的协议。Python中的Paramiko库为开发者提供了灵活、强大的SSH客户端和服务器功能。本文将深入探讨…

LeetCode刷题--- 验证二叉搜索树

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 http://t.csdnimg.cn/ZxuNL个人专栏:力扣递归算法题 http://t.csdnimg.cn/ZxuNL 【C】 http://t.csdnimg.cn/c9twt 前言:这个专栏主要讲述递归递归、搜索与回溯算法&#x…

分享5款不起眼但非常实用的小工具

​ 时光荏苒,科技日新月异,一些看似不起眼的小工具却可能改变我们的工作方式。下面我们将介绍五款不可错过的小工具,它们能给你带来一些意想不到的效果,让你的工作更加高效便捷。 1.音乐播放——洛雪音乐助手 ​ 洛雪音乐助手是…

No module named ‘osgeo’解决办法

from osgeo import gdal 报错:No module named ‘osgeo’ pycharm安装osgeo、GDAL都失败 pip install osgeo失败 最后先下载对应版本的GDAL文件 再cmd命令行中用对应环境的python进行GDAL包安装 1.我将我的Anaconda某个环境文件夹D:\software\pinstall\Anaconda3…