C语言基础_补充知识、数据类型转换、选择结构

0、补充知识:

  • 原码、反码、补码的知识:
    • 计算机中原码转补码,正数不变,负数是符号位不变,其余各位取反码加一。
    • 负数的补码转原码应该是补码减一然后再取反,为什么负数的补码转原码是补码取反然后再加一?答:这就是用补码的好处,保持了转化时硬件的一致性。
    • 计算机中是先把原码转换成补码运算完之后再把补码转成原码输出的吗?答:计算机中是直接使用补码进行所有算术运算,仅在需要显示或输出结果时,才将补码转换回原码(或用户可理解的格式)。
  • 左值(有存储地址的值)
    • 一般出现在赋值运算符的左边的内容,标识了可以存储结果值的地点。
    • 程序编译的时候,编译器会为每一个变量分配一个确定地址(左值),这个地址是在编译程序的时候直接是可知的。
    • 左值是可以取地址的。
  • 右值(无存储地址的值)
    • 一般是出现在赋值运算符的右边,必须是一个特定的值。
    • 与左值是相反的,变量中存储的那个值(右值),只有在程序运行的时候才能知道它的值。
    • 一般右值指的是一个具体的数字,或者常量,它在内存中并没有一个具体的位置(地址),但它仍然是存储在内存中的。

注意:左值可以出现在赋值符号左边或右边,右值可以出现在赋值符号右边。


1、数据类型转换:

  • 隐式类型转化(例如:一个整型数据和一个浮点型数据进行运算,结果就自然被转换为了浮点型)
    将低等级的数据类型转化为高等级的数据类型进行计算,数据类型由低到高:int、unsigned int、long、unsigned long、long long、unsigned long long、float、double。

  • 强制类型转化
    (类型说明符)(表达式):如果表达式比较复杂,可以加括号增加可读性。
    (类型说明符)表达式:如果只是简单转化,可以不给表达式加括号,同样可以生效


2、选择结构:

  • if-else if -else 结构
    在这里插入图片描述
    else 和 else if是可以省略的,不一定都要使用,根据场景决定即可
  • switch结构
    在这里插入图片描述
    如果进行判等的操作时,一般情况都是采用switch case,结构会更加明确。
  • 三目运算符也是一种条件结构:语句?满足语句:不满足语句;


总结:

  • 计算机当中一直是以补码的形式运算的,原码和补码之间的转换还得经过一个反码。
  • 条件结构中,switch一般是用于判等的,且switch后面只能跟整型数值,大部分情况都是采用if。

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

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

相关文章

ubuntu自动重启BUG排查指南

当 Ubuntu 系统意外重启时,排查原因需要从系统日志、硬件状态和定时任务等多个方面入手。 示例:通过日志检查重启原因 last -x | head | tac 此命令显示最近的关机和重启记录。如果记录中包含 shutdown 或 crash,则可能是人为操作或系统故障导…

2. JS 有哪些数据类型

总结 基础类型(7 种):number, string, boolean, null, undefined, symbol, bigint引用类型(对象及其子类):object, array, function, date, regexp, map, set 等 判断方式推荐: 基础类型&#x…

pipeline方法关系抽取--课堂笔记

Pipeline方法课堂笔记 一、Pipeline方法原理 pipeline方法是指在实体识别已经完成的基础上再进行实体之间关系的抽取. pipeline方法流程: 先对输入的句子进行实体抽取,将识别出的实体分别组合;然后再进行关系分类. 注意:这两个子过…

linux系统离线环境安装clickhouse客户端

1、下载离线安装包: 方式1:网站直接下载 链接:https://packagecloud.io/altinity/clickhouse 注意要下载同一版本的四个包 方式2:夸克网盘分享 链接:https://pan.quark.cn/s/7e77e6a1bc5f 2、将本地下载的安装包上传…

GPT-5的诞生之痛:AI帝国的现实危机

目录 前言 一、“俄里翁”的陨落:一场梦碎的代际飞跃 二、扎克伯格的“抄家式”突袭 三、天才的诅咒:当AI聪明到无法与我们对话 四、烧钱的无底洞与微软的影子 结语:AI帝国的黄昏,还是黎明前的黑暗? &#x1f3a…

探索设计模式的宝库:Java-Design-Patterns

在软件开发领域,设计模式是解决常见问题的经典方案,它们如同建筑师的蓝图,为开发者提供了经过验证的最佳实践。今天我要向大家介绍一个GitHub上的明星项目——java-design-patterns,这是一个全面、实用且持续更新的设计模式宝藏项…

JavaScript中的作用域、闭包、定时器 由浅入深

1. JavaScript中的作用域是什么? 作用域(Scope)是程序中定义变量的区域,它决定了变量的可访问性(可见性)。在JavaScript中,作用域主要分为三种:全局作用域、函数作用域和块级作用域&…

仓库管理系统-11-前端之头部区域Header的用户登录和退出功能

文章目录 1 登录功能 1.1 登录页面(Login.vue) 1.1.1 页面布局 1.1.2 初始化数据 1.1.3 confirm方法 1.1.4 UserController.java(登录接口) 1.1.5 Login.vue 1.2 登录页面的路由 1.2.1 创建路由文件(router/index.js) 1.2.2 注册路由器(main.js) 1.2.3 路由视图(App.vue) 2 退出…

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…

飞算科技:以自主创新引领数字科技浪潮,飞算JavaAI赋能产业智能化升级

技术创新已成为企业突破瓶颈、实现跨越式发展的核心驱动力。作为国家级高新技术企业,飞算数智科技(深圳)有限公司(简称“飞算科技”)凭借其深厚的互联网科技、大数据与人工智能技术积淀,以及在民生产业、中…

51单片机按键复位电路电压随着电容放电升高的分析

一、引言在单片机系统中,复位电路是一个至关重要的组成部分,它确保了单片机在特定情况下能够恢复到初始状态,从而避免程序运行错误或系统崩溃。对于51单片机而言,按键复位电路是一种常用的复位方式,它通过手动按下复位…

JVM学习日记(十五)Day15——性能监控与调优(二)

好了我们这一篇继续来说命令行监控指令,上一篇说了4个比较重要的指令,其中用的比较多的也就是jstat和jmap了。 jhat:堆转储分析工具 他是JDK自带的分析工具,分析我们上一篇说的jmap转存的内存快照,​​内置了一个微型…

Docker国内镜像列表

Docker 镜像源列表(8月3日更新-长期&免费)_docker国内镜像源-CSDN博客

Orange AI 管理平台单体版安装教程(Docker Compose 部署)

Orange AI 管理平台单体版安装教程(Docker Compose 部署) 本文介绍如何通过 Docker Compose 快速安装 Orange AI 管理平台单体版,适用于本地开发和测试环境。步骤简单,适合初学者和有一定运维经验的用户。 一、环境准备 已安装 …

PHP的魔术方法

一、介绍 ‌PHP魔术方法是以双下划线__开头的一组特殊方法,用于在对象生命周期、属性访问、方法调用等场景中实现自动化操作。‌简化面向对象编程。 二、17个现有的魔术方法 (一)、对象生命周期相关 1、__construct() 类的构造函数方法&a…

vue2实现类似chatgpt和deepseek的AI对话流打字机效果,实现多模型同时对话

实现多模型同时对话功能特点:1、抽离对话框成单独组件ChatBox.vue,在新增模型对比窗口时可重复利用2、通过sse与后台实时数据流,通过定时器实现打字效果3、适应深度思考内容输出,可点击展开与闭合4、可配置模型参数,本…

电脑上不了网怎么办?【图文详解】wifi有网络但是电脑连不上网?网络设置

一、问题背景 你有没有遇到过这种情况:电脑右下角的网络图标明明显示连接正常,可打开浏览器就是加载不出网页,聊天软件也刷不出新消息? 这种 "网络已连接但无法上网" 的问题特别常见,既不是没插网线&#xf…

思途Spring学习 0804

SpringBoot 核心概念与开发实践SpringBoot 是一个基于 Spring 框架的快速开发脚手架,通过约定大于配置的原则简化了传统 Spring 应用的初始化配置。其核心目标是整合 Spring 生态(如 SSM)并支持微服务架构开发。控制反转(IoC&…

Hutool工具类:Java开发必备神器

Hutool工具类使用说明Hutool是一个Java工具类库,提供了丰富的功能模块,包括字符串处理、日期时间操作、IO流、加密解密、HTTP客户端等。以下是一些常用模块的具体使用方法。字符串工具(StrUtil)字符串处理是开发中的常见需求&…

Node.js中Buffer的用法

// Buffer 与字符串的转换示例 // Buffer 是 Node.js 中用于处理二进制数据的类,字符串与 Buffer 之间的转换是常见操作// 1. 从字节数组创建 Buffer 并转换为字符串 // Buffer.from(array) 接收一个字节数值数组,创建对应的 Buffer let buf_4 Buffer.f…