C语言—基础数据类型(含进制转换)

进制转换不多,但我觉得适合小白(我爱夸自己嘿嘿)

练习

1. 确认基础类型所占用的内存空间(提示:使用sizeof 运算符): 

在这里我说一下,long 类型通常占用 4 字节。在 64 位系统上,long 类型通常也可为 8 字节。

格式化符sizeof对应的是%zu懒得改了,%lu也行毕竟没报错


2.定义一个unsigned short 类型的变量,并赋值为0,确认该变量减一后的值是什么,(注意无符号数输出需要使用%u)   


3.输入摄氏度转成华氏度输出 (摄氏 = (华氏-32)/1.8)


4. 按下面要求转换数据:
     0356 -->   十六进制   
     0x47 --->  十进制 ---> 八进制
     1026 --->  八进制----> 十六进制

手算:这里按照方法一点点来,我倒是学懂了

1.0356八进制数转十六进制,先将0356每一位数转换为三位二进制数,再由右向左每四位组在一起,不够补零。ABCDEF代表的数字是10-15,E是14,1414也就是EE

2.0x47(十六进制0x为前缀)

  转十进制就直接乘以它本身的进制数,比如十六进制就乘以它的进制数16,十进制就算出来了((4*16^1+7*16^0=71))

  十六进制转八进制把十六进制数每一位数字转为四位的二进制数再由右向左每三个排在一起,就可以了

3.1026十进制转八进制、十六进制

  直接除以要转的进制数,直至商为0,看余数,倒着数就可以,如图所示。

代码:我暂时还不太会,但我决定还是先放上来吧

#include <stdio.h>  // 引入标准输入输出库
#include <stdlib.h> // 引入标准库,用于处理转换int main(void)
{char hexInput[10]; // 声明一个字符数组,用于存储十六进制输入int decimal, octal, hex; // 声明三个整型变量,用于存储十进制、八进制和十六进制数// 八进制到十六进制printf("请输入一个八进制数:"); // 提示用户输入一个八进制数scanf("%o",&octal); // 使用%o格式符读取八进制数,并存储在变量octal中hex = octal; // 将八进制数直接赋值给十六进制数变量hex,因为八进制和十六进制数在数值上是一一对应的sprintf(hexInput,"%x",hex); // 使用sprintf函数将十六进制数转换为字符串表示,并存储在hexInput中printf("八进制数 %o 转换为十六进制数: %s\n",octal,hexInput); // 打印转换结果// 十六进制到十进制printf("请输入十六进制数:"); // 提示用户输入一个十六进制数scanf("%s",hexInput); // 使用%s格式符读取字符串形式的十六进制数decimal = (int)strtol(hexInput,NULL,16); // 使用strtol函数将十六进制字符串转换为十进制整数printf("十六进制数 %s 转换为十进制数是: %d\n",hexInput,decimal); // 打印转换结果//十六进制转八进制printf("请输入十六进制数:");scanf("%s",hexInput);hex = (int)strtol(hexInput,NULL,16); // 将十六进制数先转换为十进制octal = hex;// 将十进制数直接赋值给八进制数变量octal,因为十六进制和八进制的数值一一对应printf("十六进制数 %s 转换为八进制数是: %o\n",hexInput,octal);// 打印转换结果// 十进制到八进制printf("请输入一个十进制数:"); // 提示用户输入一个十进制数scanf("%d",&decimal); // 使用%d格式符读取十进制数octal = decimal; // 十进制数直接赋值给八进制数变量octal,因为它们在数值上也是一一对应的printf("十进制数 %d 转换为八进制数 %o\n",decimal,octal); // 打印转换结果// 十进制到十六进制printf("请输入一个十进制数:"); // 提示用户输入一个十进制数scanf("%d",&decimal); // 使用%d格式符读取十进制数sprintf(hexInput,"%x",decimal); // 使用sprintf函数将十进制数转换为十六进制字符串表示printf("十进制数 %d 转换为十六进制 %s\n",decimal,hexInput); // 打印转换结果return 0; // 程序结束
}


1、通过键盘输入一个通话秒数,编程显示通话用了几分钟几秒。

这里注意if语句应该是if(sec < 0),可以秒数可以为0,我懒得改动了,代码是改动过的

/*1、通过键盘输入一个通话秒数,编程显示通话用了几分钟几秒.*/#include <stdio.h>int main(void)
{int sec;int min;printf("请输入通话的秒数:");scanf("%d",&sec);if(sec <= 0){printf("输入错误,通话时间不能为负数,请重新输入!\n");return 1;}min = sec / 60;sec %= 60;printf("通话了%d分钟%d秒\n",min,sec);return 0;}


2、输入身高公制(cm),转换成英制(inch)(1inch = 2.54cm)。

/*2、输入身高公制(cm),转换成英制(inch)(1inch = 2.54cm)*/#include <stdio.h>int main(void)
{float height_cm,height_inch;printf("请输入您的身高(cm):");scanf("%f",&height_cm);if(height_cm < 0){printf("身高不能为负数,请重新输入!\n");return 1;}height_inch = height_cm / 2.54;printf("您的身高是%.2f英寸\n",height_inch);return 0;}


3、输入身高和体重,计算BMI指数(BMI = w/(h*h))。

/*3、输入身高和体重,计算BMI指数(BMI = w/(h*h))。*/#include <stdio.h>int main(void)
{float wei,hei,bmi;printf("请输入您的体重(kg):");scanf("%f",&wei);printf("请输入您的身高(m):");scanf("%f",&hei);bmi = wei / (hei * hei);printf("您的BMI指数是: %.2f\n",bmi);return 0;}


4.已经字符变量的值为 'p',如何使得该变量的输出为 'M',写出程序;

/*4.已经字符变量的值为 'p',如何使得该变量的输出为 'M'*/
/*p ASCII码112     M 77*/#include <stdio.h>int main(void)
{char var = 'p';var -= 35;printf("%c\n",var);return 0;}


5.将数字8输出为'8'; 

变量a被赋予了整数值8。当printf使用%c格式说明符时,它会将整数8转换为其对应的ASCII字符,即输出字符’8’。我是这么理解的,当然也可以直接输出字符'8'.

/*5.将数字8输出为'8'*/#include <stdio.h>int main(void)
{int a = 8;printf("%c\n",a);return 0;}//只输出字符'8'
printf("%c\n",'8');


6. 写出整型数 -56 在内存中的存储数据,如果将该内存的存储数据当作无符号整型数,则值是多少?(没记错的话,补码是其在存储方式)四个字节也就是11001000 11001000 11001000 1100100

          内存存储方式:  按照整数数据的补码方式存放:
               原码:  整型数据的二进制形式
               有符号整数   (最高位符号位 (0:正数,1:负数)) + 数据位
               无符号:     所有的二进制位都是数据位 
           反码:   除了符号位外,其余数据位取反(0--->1, 1--->0)
           补码:   反码 + 1

正数: 原码,反码 和补码是相同的; 
负数: 最高位符号位,其余位为数据位,采用补码方式存储,

差不多上述算就完事好像是这样不确定,就这样啦,我会的话会回来精进的啦,数应当是对的,让C自己算的哈哈哈

/*6. -56 如果将该内存的存储数据当作无符号整型数,则值是多少?*/#include <stdio.h>int main(void)
{int a = -56;printf("%u\n",a);return 0;}

.

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

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

相关文章

LeetCode、208. 实现 Trie (前缀树)【中等,自定义数据结构】

文章目录 前言LeetCode、208. 实现 Trie (前缀树)【中等&#xff0c;自定义数据结构】题目链接与分类思路 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领…

低资源学习与知识图谱:构建与应用

目录 前言1 低资源学习方法1.1 数据增强1.2 特征增强1.3 模型增强 2 低资源知识图谱构建与推理2.1 元关系学习2.2 对抗学习2.3 零样本关系抽取2.4 零样本学习与迁移学习2.5 零样本学习与辅助信息 3 基于知识图谱的低资源学习应用3.1 零样本图像分类3.2 知识增强的零样本学习3.3…

云原生介绍与容器的基本概念

云原生介绍 1、云原生的定义 云原生为用户指定了一条低心智负担的、敏捷的、能够以可扩展、可复制的方式最大化地利用云的能力、发挥云的价值的最佳路径。 2、云原生思想两个理论 第一个理论基础是&#xff1a;不可变基础设施。 第二个理论基础是&#xff1a;云应用编排理…

备战蓝桥杯---图论基础理论

图的存储&#xff1a; 1.邻接矩阵&#xff1a; 我们用map[i][j]表示i--->j的边权 2.用vector数组&#xff08;在搜索专题的游戏一题中应用过&#xff09; 3.用邻接表&#xff1a; 下面是用链表实现的基本功能的代码&#xff1a; #include<bits/stdc.h> using nam…

纪念一下 开始写博客两周以来第一次入围榜单

两周里 创作博客 第一次进入热榜 虽然只有几十名 但也算是一个突破 确实没想到自己随便做的笔记就入围了 感谢各位大佬的支持&#xff01;继续进步&#xff01;&#x1f973;&#x1f973;&#x1f973;

服务流控(Sentinel)

引入依赖 <!-- 必须的 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency><!-- sentinel 核心库 --> <dependency><groupId>com.ali…

权限系统设计

权限系统设计 RBAC 基于角色的访问控制 ABAC 基于属性的访问控制 普通的系统无非 CRUD&#xff0c;那系统如何控制一个用户该看到哪些数据、能操作哪些功能&#xff1f;日常开发中最常用到 RBAC 和 OAuth2 这两种访问控制和授权方案 RBAC 基于角色的访问控制 所有的访问控制模…

力扣精选算法100道——【模板】前缀和 (二维)

目录 &#x1f388;题目解析 &#x1f388;算法原理 &#x1f388;实现代码 二维前缀和【模板】 &#x1f388;题目解析 上一题我们讲述了一维的前缀和求法。 第一行三个参数&#xff0c;n是行数3&#xff0c;m是列数4&#xff0c;q3代表查询次数 接下来就是n行m列的矩阵…

基于python混沌系统敏感文本信息加密算法的研究与实现,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

微服务OAuth 2.1认证授权Demo方案(Spring Security 6)

文章目录 一、介绍二、auth微服务代码1. SecurityConfig2. UserDetailsService3. 总结 三、gateway微服务代码1. 统一处理CORS问题 四、content微服务代码1. controller2. SecurityConfig3. 解析JWT Utils4. 总结 五、一些坑 书接上文 微服务OAuth 2.1认证授权可行性方案(Sprin…

【51单片机】串口(江科大)

8.1串口通信 1.串口介绍 2.硬件电路 3.电平标准 电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种: 电平标准是数据1和数据O的表达方式,是传输线缆中人为规定的电 压与数据的对应关系,串口常用的电平标准有如下…

【QT+QGIS跨平台编译】之三十六:【RasterLite2+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、RasterLite2介绍二、文件下载三、文件分析四、pro文件五、编译实践一、RasterLite2介绍 RasterLite2是一个开源的轻量级栅格数据库,可以用于存储和管理各种类型的栅格数据,包括卫星遥感图像、数字高程模型等。 与传统的GIS数据存储方式不同,RasterLite2采用基…

React18原理: 时间分片技术选择

渲染1w个节点的不同方式 1 &#xff09;案例1&#xff1a;一次渲染1w个节点 <div idroot><div><script type"text/javascript">function randomHexColor() {return "#" ("0000" (Math.random() * 0x1000000 << 0).toS…

【深蓝学院】移动机器人运动规划--第4章 动力学约束下的运动规划--作业

文章目录 1. T11.1 题目1.2 求解1.3 Pontryagin Minimum Principle 的拓展 2. T22.1 题目2.2 求解 3. Reference 1. T1 1.1 题目 1.2 求解 1.3 Pontryagin Minimum Principle 的拓展 2. T2 2.1 题目 2.2 求解 Listing1&#xff1a; demo_node.cpp/trajectoryLibrary() for(i…

蓝桥杯-X图形

问题描述 给定一个字母矩阵。一个 X 图形由中心点和由中心点向四个 45度斜线方向引出的直线段组成&#xff0c;四条线段的长度相同&#xff0c;而且四条线段上的字母和中心点的字母相同。 一个 X 图形可以使用三个整数 r,c,L 来描述&#xff0c;其中 r,c 表示中心点位于第 r 行…

理解JAVA EE设计模式

理解JAVA EE设计模式 在Web应用程序的设计和开发阶段,开发人员在开发类似的项目时可能会遇到相似的问题。每名开发人员可能会遇到的问题找出不同或相似的解决方案。但是,这导致一些时间和精力浪费在为相似的问题寻找解决方案上。因此,要啊节省时间和精力,需要记录常见问题…

Vulnhub靶场 DC-9

目录 一、环境搭建 二、信息收集 1、主机发现 2、指纹识别 三、漏洞复现 1、dirsearch目录探测 2、sqlmap注入测试 3、文件包含漏洞 4、Knockd敲门服务 5、ssh爆破 ​​​​​​​6、提权 四、提取flag 一、环境搭建 Vulnhub靶机下载&#xff1a; 官网地址&#xff1a;https://…

红队打靶练习:Alfa:1

下载连接点击此处即可&#xff01; 目录 信息收集 1、arp 2、nmap 3、gobuster WEB web信息收集 FTP登录 smaba服务 crunch密码生成 提权 系统信息收集 权限提升 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, …

消息中间件面试篇

消息中间件 RabbitMQ 消息不丢失 可能导致消息丢失的情况&#xff1a; 生产者发送消息丢失消息队列宕机消费者服务宕机&#xff0c;未接收到消息 生产者确认机制 该机制解决了生产者发送消息有可能丢失的问题。 RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程…

Unity下使用Sqlite

sqlite和access类似是文件形式的数据库&#xff0c;不需要安装任何服务&#xff0c;可以存储数据&#xff0c;使用起来还是挺方便的。 首先需要安装DLL 需要的DLL 我们找到下面两个文件放入Plugins目录 Mono.Data.Sqlite.dll System.Data.dll DLL文件位于Unity的安装目录下的…