当前位置: 首页 > news >正文

C语言:截断+整型提升练习

 详情关于整型提升与截断见文章:《C语言:整型提升》

一、代码一

int main()
{
    char a = -1;
    signed char b = -1;
    unsigned char c = -1;

    printf("%d %d %d", a, b, c);
    return 0;
}

 求输出结果

解析如下代码:

int main()
{char a = -1;//10000000 00000000 00000000 00000001原//11111111111111111111111111111111111补//11111111截断补(首位作符号位)//11111111111111111111111111111111111整型提升补//10000000 00000000 00000000 00000001整型提升原signed char b = -1;//10000000 00000000 00000000 00000001原//11111111111111111111111111111111111补//11111111截断补(首位作符号位)//11111111111111111111111111111111111整型提升补//10000000 00000000 00000000 00000001整型提升原unsigned char c = -1;//10000000 00000000 00000000 00000001原//11111111111111111111111111111111111补//11111111截断补(首位作普通位)//11111111111111111111111111111111111整型提升补//000000000000000000000000000011111111整型提升原printf("%d %d %d", a, b, c);//-1 -1 255return 0;
}

二、代码二

int main()
{
    char a = -128;

    printf("%u\n", a);
    return 0;
}

求输出结果

解析如下代码:

int main()
{char a = -128;//10000000 00000000 00000000 10000000原//11111111 11111111 11111111 10000000补//10000000截断补(首位作为符号位)//%u是打印十进制无符号数//11111111 11111111 11111111 10000000整型提升补(先整型提升,最高位补符号位)//11111111 11111111 11111111 10000000改无符号数补//11111111 11111111 11111111 10000000改无符号数原printf("%u\n", a);//4,294,967,168return 0;
}

三、代码三

int main()
{
    char a = 128;
    printf("%u\n", a);
    return 0;
}

求输出结果

解析如下代码:

int main()
{char a = 128;//00000000 00000000 00000000 10000000原//00000000 00000000 00000000 10000000补//10000000截断补(首位作为符号位)//%u是打印十进制无符号数//11111111 11111111 11111111 10000000整型提升补(最高位补符号位)//11111111 11111111 11111111 10000000改无符号数补//11111111 11111111 11111111 10000000改无符号数原printf("%u\n", a);//4,294,967,168return 0;
}

四、代码四

int main()
{
    int i = -20;
    unsigned int j = 10;
    printf("%d", i + j);

    return 0;
}

求输出结果

解析如下代码:

int main()
{int i = -20;//10000000 00000000 00000000 00010100原//11111111 11111111 11111111 11101100补//11111111 11111111 11111111 11101100算数转换补(符号位当做普通位)unsigned int j = 10;//00000000 00000000 00000000 00001010原//00000000 00000000 00000000 00001010补//i+j//11111111 11111111 11111111 11101100(i算数转换后的补码)//00000000 00000000 00000000 00001010(j补码)//11111111 11111111 11111111 11110110(i+j后的补码)无符号数//%d是打印十进制有符号数//11111111 11111111 11111111 11110110(i+j后的补码)改有符号数//10000000 00000000 00000000 00001010(i+j改有符号数后的原码)printf("%d", i + j);//-10return 0;
}

相关文章:

C语言:截断+整型提升练习

详情关于整型提升与截断见文章:《C语言:整型提升》 一、代码一 int main() { char a -1; signed char b -1; unsigned char c -1; printf("%d %d %d", a, b, c); return 0; } 求输出结果 解析如下代码: int mai…...

Kubernetes技术--k8s核心技术kubectl命令行工具

(1).概述 kubectl是Kubernetes集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。 (2).语法 Kubectl [command] [type] [name] [flags] 语法参数说明: command: 指定要对资源执行的操作,例如 create、get、describe 和 delet…...

Element浅尝辄止9:Popover 弹出框组件

Popover 的属性与 Tooltip 很类似,它们都是基于Vue-popper开发的,因此有重复属性 1.如何使用? /*trigger属性用于设置何时触发 Popover,支持四种触发方式: hover,click,focus 和 manual。 对于…...

程序开发:构建功能强大的应用的艺术

程序开发是在今天的数字化时代中扮演重要角色的一项技术。通过编写代码,开发人员能创造出无数不同的应用,从简单的计算器到复杂的社交平台。电子商务应用、在线教育平台、医疗记录系统等,都重视程序开发的重要性,通过这其中的交互…...

(七)k8s实战-高级调度

一、CronJob 定时任务 1、cron 表达式 # ┌───────────── 分钟 (0 - 59) # │ ┌───────────── 小时 (0 - 23) # │ │ ┌───────────── 月的某天 (1 - 31) # │ │ │ ┌───────────── 月份 (1 - 12) # │ │ │ │ ┌…...

HTTP/1.1协议中的八种请求

2023年8月29日,周二晚上 目录 概述八种请求GET请求POST请求PUT请求PATCH请求DELETE请求HEAD请求OPTIONS请求TRACE请求 概述八种请求 HTTP/1.1协议中定义了8种常用的请求方法,分别是:1. GET 用途:请求指定的页面信息,并返回实体主体。例子:获取一个网页、图片等静态…...

面试系列 - JVM内存模型和调优详解

目录 一、JVM内存模型 1. 程序计数器(Program Counter Register): 2.Java虚拟机栈(Java Virtual Machine Stacks): 3. 本地方法栈(Native Method Stack): 5. 方法区…...

JavaScript -【第一周】

文章来源于网上收集和自己原创,若侵害到您的权利,请您及时联系并删除~~~ JavaScript 介绍 变量、常量、数据类型、运算符等基础概念 能够实现数据类型的转换,结合四则运算体会如何编程。 体会现实世界中的事物与计算机的关系理解什么是数据并…...

高性能缓存 Caffeine 原理及实战

Caffeine 是基于Java 8 开发的、提供了近乎最佳命中率的高性能本地缓存组件,Spring5 开始不再支持 Guava Cache,改为使用 Caffeine。 1 算法原理 对于 Java 进程内缓存我们可以通过 HashMap 来实现。不过,Java 进程内存是有限的,…...

【算法】leetcode 105 从前序与中序遍历序列构造二叉树

题目 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 1: Input: preorder [3,9,20,15,7], inorder [9,3,15,20,7] Output: [3,9,20,null,null,15,7]示例 2: Input: pr…...

11 | Spark计算数据文件中每行数值的平均值

需求:计算数据文件中的数值的平均值 背景: 你有一个数据文件,其中包含一系列数值,每行一个数值,数值之间用逗号分隔。你想使用Apache Spark分布式计算框架来读取数据文件中的数值并计算它们的平均值。功能要求: 通过Spark配置和上下文初始化Spark应用程序。从数据文件中…...

AI与游戏创新:深度学习的起跑枪声

《AI与游戏创新:深度学习的起跑枪声》 目录 引言AIGC定义与重要性AI在游戏中的应用AI推动游戏创新的可能途径AIGC的挑战与解决方案结论:AI是游戏行业的下一站 引言 AI(人工智能)正在全球范围内改变各个行业,游戏行…...

【GUI开发】用python爬YouTube博主信息,并开发成exe软件

文章目录 一、背景介绍二、代码讲解2.1 爬虫2.2 tkinter界面2.3 存日志 三、软件演示视频四、说明 一、背景介绍 你好,我是马哥python说,一名10年程序猿。 最近我用python开发了一个GUI桌面软件,目的是爬取相关YouTube博主的各种信息&#…...

7.6 函数的递归调用

直接调用&#xff1a; ### 1. 直接递归调用 直接递归调用是指一个函数直接调用自己。例如&#xff0c;计算阶乘的函数&#xff0c;可以使用递归方法&#xff1a; int factorial(int n) {if (n < 1) {return 1;}return n * factorial(n - 1); } 在这个例子中&#xff0c;f…...

本地开机启动jar

1&#xff1a;首先有个可运行的jar包 本地以ruiyi代码为例打包 2&#xff1a;编写bat命令---命名为.bat即可 echo off java -jar D:\everyDay\test\RuoYi\target\RuoYi.jar 3&#xff1a;设置为开机自启动启动 快捷键winr----输入shell:startup---打开启动文档夹 把bat文件复…...

解决uniapp手机真机调试时找不到手机问题

1、检查 USB 调试是否开启 2、检查是否有选择 文件 传输 选项 3、如果上述都做了还找不到&#xff0c;可以看看开发者选项中的【USB设置】&#xff0c;把模式改为 MIDI 模式...

HarmonyOS应用开发者-----高级认证试题及答案

HarmonyOS应用开发者高级认证试题及答案 试题会不定时刷新,本试题仅供大家学习参考 【判断题】 2/2 HarmonyOS应用可以兼容OpenHarmony生态 正确(True)【判断题】 2/2 所有使用@Component修饰的自定义组件都支持onPageShow,onBackPress和onPageHide生命周期函数。 正确(True…...

R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列...

全文链接&#xff1a;http://tecdat.cn/?p31162 最近我们被客户要求撰写关于SV模型的研究报告&#xff0c;包括一些图形和统计输出&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 本文做SV模型&#xff0c;选取马尔可夫蒙特卡罗法(MCMC)、正则化广…...

详细教程:Stegsolve的下载,jdk的下载、安装以及环境的配置

最近在学习隐写术&#xff0c;下载stegsolve 以及使用stegsolve倒腾了很久&#xff0c;避免朋友们和我一样倒腾了很久&#xff0c;希望此文可以帮到刚在学习隐写的朋友们(win7下使用stegsolve) 文章目录 一、下载stegsolve链接二、jdk的下载三、jdk的安装四、配置环境变量五、检…...

Watermark 是怎么生成和传递的?

分析&回答 Watermark 介绍 Watermark 本质是时间戳&#xff0c;与业务数据一样无差别地传递下去&#xff0c;目的是衡量事件时间的进度&#xff08;通知 Flink 触发事件时间相关的操作&#xff0c;例如窗口&#xff09;。 Watermark 是一个时间戳, 它表示小于该时间戳的…...

Qt C++ 集成 SQLite 实现本地数据持久化:从原理到宠物投喂器实战

1. 项目概述与核心需求解析最近在做一个宠物智能投喂器的数据管理后台&#xff0c;核心需求是把设备上传的各种运行数据持久化存储起来&#xff0c;方便后续分析和查看。设备会上传投喂间隔时间、水温、剩余重量这几个关键参数&#xff0c;我需要一个轻量、可靠且易于集成的本地…...

CANN/asc-devkit ClearBias接口文档

ClearBias 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/…...

别再问客服了!手把手教你用VNC在AutoDL GPU服务器上跑起你的第一个GUI程序

云端GPU服务器VNC实战&#xff1a;从零部署GUI开发环境全指南 租用云GPU服务器进行深度学习训练已成为算法工程师的常态&#xff0c;但当代码涉及图形界面时&#xff0c;许多开发者会在cv2.imshow()或PyQt窗口弹出的环节卡壳。本文将基于AutoDL平台&#xff0c;详解如何通过Tur…...

电子制造工厂场景,AI自动化方案主流厂商横评:2026年智慧工厂选型深度解析

站在2026年的时间节点回看&#xff0c;电子制造工厂的数字化转型已完成从“单点自动化”向“系统智能化”的跨越。 随着全球供应链波动的常态化&#xff0c;AI自动化方案已不再是锦上添花的“实验室项目”&#xff0c; 而是关乎企业在0.1毫米精度竞争中能否生存的底层基座。 根…...

告别硬编码!用Python importlib实现动态插件加载(附完整代码)

告别硬编码&#xff01;用Python importlib实现动态插件加载&#xff08;附完整代码&#xff09; 在构建复杂系统时&#xff0c;插件化架构已成为提升代码灵活性和可扩展性的黄金标准。想象一下&#xff0c;当你的应用需要在不重启服务的情况下动态添加新功能&#xff0c;或者允…...

RH850 F1的FLASH自编程实战:如何在程序运行时安全更新数据闪存?

RH850 F1 FLASH自编程实战&#xff1a;如何在运行时安全更新数据闪存&#xff1f; 当车载ECU以120km/h行驶时&#xff0c;突然需要更新发动机标定参数——这个看似矛盾的场景&#xff0c;正是汽车电子工程师每天面对的挑战。RH850 F1系列微控制器独有的**后台操作(BGO)**功能&a…...

如何让老旧游戏手柄重获新生:XOutput输入转换器完整指南

如何让老旧游戏手柄重获新生&#xff1a;XOutput输入转换器完整指南 【免费下载链接】XOutput DirectInput to XInput wrapper 项目地址: https://gitcode.com/gh_mirrors/xo/XOutput 你是否拥有一些老旧但质量优秀的游戏手柄、摇杆或方向盘&#xff0c;却发现在现代游戏…...

别再乱改Rime配置了!先搞懂用户文件夹和程序文件夹的区别(Windows/Ubuntu路径详解)

Rime配置进阶指南&#xff1a;用户文件夹与程序文件夹的深度解析 1. 理解Rime配置的核心架构 Rime输入法以其高度可定制性著称&#xff0c;但这也意味着用户需要对其配置结构有清晰认知。许多初学者在修改配置时常常陷入困惑&#xff1a;为什么我的修改没有生效&#xff1f;为什…...

puma-dev与Webpack Dev Server集成:解决混合内容错误的终极方案

puma-dev与Webpack Dev Server集成&#xff1a;解决混合内容错误的终极方案 【免费下载链接】puma-dev A tool to manage rack apps in development with puma 项目地址: https://gitcode.com/gh_mirrors/pu/puma-dev 在现代Web开发中&#xff0c;puma-dev作为一款快速、…...

Redis 持久化机制:RDB、AOF 与混合持久化

Redis 持久化机制&#xff1a;RDB、AOF 与混合持久化 面试热度&#xff1a;⭐⭐⭐⭐⭐ 前置知识&#xff1a;Redis 基本数据结构、Linux 进程 fork 概念 &#x1f4d1; 目录&#xff08;点击跳转&#xff09; 1. 为什么 Redis 需要持久化2. RDB 持久化 2.1 基本原理2.2 RDB 的…...