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

C语言:截断+整型提升+算数转换练习

 详情关于整型提升、算数转换与截断见文章:

《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;
}

五、代码五

int main()
{
    unsigned int i;
    for (i = 9; i >= 0; i--)
    {
        printf("%u\n", i);
    }

    return 0;
}

求输出结果

解析如下代码:

int main()
{unsigned int i;for (i = 9; i >= 0; i--){printf("%u\n", i);}//无符号数9到0正常输出//当i = 0循环执行结束时,i--即 i = i - 1, i = -1//-1需要改为无符号数//11111111 11111111 11111111 11111111 (-1的补码)//11111111 11111111 11111111 11111111 (改无符号数后的补码)//11111111 11111111 11111111 11111111 (改无符号数后的原码)//结果:4,294,967,295//i又从4,294,967,295开始递减//每当i = 0循环执行结束时,i--又会回到4,294,967,295//所以程序死循环return 0;
}

 运行结果如下,陷入死循环

相关文章:

C语言:截断+整型提升+算数转换练习

详情关于整型提升、算数转换与截断见文章: 《C语言:整型提升》 《C语言:算数转换》 一、代码一 int main() { char a -1; signed char b -1; unsigned char c -1; printf("%d %d %d", a, b, c); return 0; } 求…...

Java后端开发面试题——多线程

创建线程的方式有哪些? 继承Thread类 public class MyThread extends Thread {Overridepublic void run() {System.out.println("MyThread...run...");}public static void main(String[] args) {// 创建MyThread对象MyThread t1 new MyThread() ;MyTh…...

Redis 学习笔记

文章目录 一、简介二、下载三、安装四、启动和关闭五、配置文件六、常用指令七、安全加固 版权声明:本文为CSDN博主「杨群」的原创文章,遵循 CC 4.0 BY-SA版权协议,于2023年9月3日首发于CSDN,转载请附上原文出处链接及本声明。 原…...

华为云新生代开发者招募

开发者您好,我们是华为2012UCD的研究团队 为了解年轻开发者的开发现状和趋势 正在邀请各位先锋开发者,与我们进行2小时的线上交流(江浙沪附近可线下交流) 聊聊您日常开发工作中的产品使用需求 成功参与访谈者将获得至少300元京…...

DockerFile简明教程

需求 由于在测试环境中使用了docker官网的centos 镜像,但是该镜像里面默认没有安装ssh服务,在做测试时又需要开启ssh。所以上网也查了查资料。下面详细的纪录下。在centos 容器内安装ssh后,转成新的镜像用于后期测试使用。 镜像定制 第一种…...

Cygwin是什么?是Windows还是Linux?

原文作者:gentle_zhou 原文链接:https://bbs.huaweicloud.com/blogs/408674 最近在和客户交流的时候,一直以为客户的研发环境就是windows 7,直到和对面的研发团队交流的时候,得到的反馈是在windows 7系统上安装了Cygw…...

成集云 | 多维表格自动化管理jira Server项目 | 解决方案

源系统成集云目标系统 方案介绍 基于成集云集成平台,在多维表格中的需求任务信息自动创建、更新同步至 Jira Server 的指定项目中,实现多维表格中一表管理 Jira Server 中的项目进度。 维格表是一种新一代的团队数据协作和项目管理工具&…...

数据结构(Java实现)-排序

排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序&#xff…...

C++------vector【STL】

文章目录 vector的介绍及使用vector的介绍vector的使用 vector的模拟实现 vector的介绍及使用 vector的介绍 1、vector是表示可变大小数组的序列容器。 2、就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问和数…...

Matlab(变量与文本读取)

目录 1.变量(数据)类型转换 1.1 字符 1.2 字符串 1.3 逻辑操作与赋值 2.Struct结构体数组 2.1函数的详细介绍: 2.1.1 cell2struct 2.1.1.1 垂直维度转换 2.1.1.2 水平维度转换 2.1.1.3 部分进行转换 2.1.2 rmfield 2.1.3 fieldnames(查…...

WebGPU学习(8)---使用RenderBundle

RenderBundle是什么 通常情况下,WebGPU每次绘制时都需要向RenderPassEncoder注册渲染命令。处理此绘图命令比 WebGL 内部执行的类似处理更快。但是,如果可以省略此命令注册过程,则可以能够更快地绘制。RenderBundle 就是实现这一点的。 Ren…...

【前端】常用功能合集

目录 js跳转到新标签打开PDF文件js每十个字符换行 es6用表达式或变量名作为对象的属性名 vuev-for插值、:style、:class父组件加载完后再加载子组件keep-alive缓存跨域请求第三方接口跨域请求之callback(不建议)读取本地文件浏览器播放提示音audio jquer…...

chatgpt谈论日本排放污水事件

W...Y的主页 😊 代码仓库分享 💕 近日,世界发生了让人义愤填膺的时间——日本排放核污水。这件事情是那么的突然且不计后果,海洋是我们全人类共同的财产,而日本却想用自己一己私欲将全人类的安全置之度外&#xff0c…...

Linux 查看当前目录大小

分析&回答 1. 查看当前目录下所有目录及子目录大小 du -h - . “.”代表当前目录下。也可以换成一个明确的路径 复制代码 2.查看当前文件目录各个文件夹大小 du -h --max-depth1 复制代码 查看指定目录 du -h --max-depth1 /path 复制代码 -h表示用K、M、G的人性化形…...

操作系统备考学习 day1 (1.1.1-1.3.1)

操作系统备考学习 day1 计算机系统概述操作系统的基本概念操作系统的概念、功能和目标操作系统的四个特征并发共享虚拟异步 操作系统的发展和分类操作系统的运行环境操作系统的运行机制 年初做了一个c的webserver 的项目,在学习过程中已经解除部分操作系统的知识&am…...

HTTP:http上传文件的原理及java处理方法的介绍

为了说明原理&#xff0c;以下提供一个可以上传多个文件的例子&#xff0c;html页面代码如下&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>http upload file</title> </head> <body>…...

[实习笔记] 字符串练习 (将大量的字符串用int值编码,然后通过int值二分快速查找某个字符串)

目录 介绍分析完整代码&#xff1a; 免责声明&#xff1a; 本文章是实习期间的C练习题目&#xff0c;可能会存在大量错误&#xff0c;文章仅作为个人笔记供作者自己方便观看. 介绍 在一个游戏里&#xff0c;可能会出现大量的NPC, 这些NPC有很多都是相同的名字. 存放NPC名字的…...

EMC VNX2代一键关机方法

由于不正确的EMC VNX存储系统的关机导致客户业务中断&#xff0c;数据丢失的案例数不胜数。不正确的关机顺序&#xff0c;很容易造成内存中的数据丢失&#xff0c;进而导致dirty cache&#xff0c;然后系统的LUN和POOL就无法online&#xff0c;业务中断。本文仅仅对EMC 2代产品…...

提升系统管理:监控和可观察性在DevOps中的作用

在不断发展的DevOps世界中&#xff0c;深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念&#xff0c;为系统的健康和性能提供了宝贵的可见性。虽然这些术语经常可以互换使用&#xff0c;但它们代表着理解和管理复杂…...

IIS搭建本地电脑服务器:通过内网穿透技术实现公网访问的步骤指南

1.前言 在网上各种教程和介绍中&#xff0c;搭建网页都会借助各种软件的帮助&#xff0c;比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类&#xff0c;为方便用户使用&#xff0c;还出现了XAMPP、PHPStudy、宝塔面板等等一系列集成服务&#xff0c;都是为了方便我们…...

ALM代码编辑器实战教程:从HTML到TSX的转换技巧

ALM代码编辑器实战教程&#xff1a;从HTML到TSX的转换技巧 【免费下载链接】alm :rose: A :cloud: ready IDE just for TypeScript :heart: 项目地址: https://gitcode.com/gh_mirrors/al/alm ALM代码编辑器是一款专为TypeScript开发打造的云端IDE&#xff0c;提供了丰富…...

OEC-turbo变废为宝:从吃灰PCDN盒子到家庭服务器,Armbian/OpenWrt刷机实战记录

OEC-turbo硬件改造指南&#xff1a;从闲置PCDN设备到全能家庭服务器 手上闲置的OEC-turbo盒子除了吃灰还能做什么&#xff1f;这款搭载RK3568芯片的设备实际上是一块被低估的硬件宝藏。相比市面上热门的斐讯N1等矿渣设备&#xff0c;OEC-turbo在处理器性能、内存配置和扩展性方…...

Chandra AI企业知识管理方案:文档智能检索与摘要生成

Chandra AI企业知识管理方案&#xff1a;文档智能检索与摘要生成 1. 引言 企业每天都在产生海量文档——合同、报告、PPT、技术文档...这些宝贵的知识资产往往散落在各处&#xff0c;查找困难&#xff0c;利用率低。传统的关键词搜索就像在黑暗中摸索&#xff0c;找到的文档可…...

窗口效率革命:WindowResizer重构数字空间管理新范式

窗口效率革命&#xff1a;WindowResizer重构数字空间管理新范式 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 问题诊断&#xff1a;被忽视的数字空间效率黑洞 现代办公的隐形枷…...

WarcraftHelper:让经典魔兽争霸III在现代电脑上焕发新生的全能助手

WarcraftHelper&#xff1a;让经典魔兽争霸III在现代电脑上焕发新生的全能助手 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在宽…...

何时DCDC预降压+LDO二次线性稳压?

LDO 核心选型分界结论及优化要点核心选型分界结论以LDO输入输出压差ΔV为核心判断指标&#xff0c;结合输出功率、场景约束&#xff0c;通用选型规则如下&#xff1a;通用强制分界点&#xff1a;当ΔV≥2V&#xff0c;且输出功率≥100mW&#xff08;对应你之前的5V转3V70mA工况…...

像素皇城灵蛇贺岁:5分钟部署你的赛博春联生成器(保姆级教程)

像素皇城灵蛇贺岁&#xff1a;5分钟部署你的赛博春联生成器&#xff08;保姆级教程&#xff09; 1. 前言&#xff1a;当传统春节遇上赛博美学 春节贴春联是延续千年的传统习俗&#xff0c;但你是否想过用AI技术为这个传统注入新的活力&#xff1f;今天我们要介绍的"像素…...

《C语言学习:判断语句if-else》5

写在前面&#xff1a;本笔记为个人学习各平台C语言系列课程所作&#xff0c;仅供交流学习&#xff0c;不得作他用。1. if基本用法if(/*条件*/){/*做法*/ } //如果满足条件&#xff0c;则做大括号中的事情圆括号中是条件&#xff0c;或者说一个表达式。当它是0&#xff0c;则不执…...

Proteus 8实战:手把手教你搭建ATmega16流水灯仿真,并联动真实代码调试

Proteus 8实战&#xff1a;从零构建ATmega16流水灯仿真系统 在嵌入式开发的学习路径上&#xff0c;仿真工具的价值常常被低估。许多开发者习惯直接上手物理硬件&#xff0c;却在遇到问题时陷入漫长的调试循环。Proteus 8提供的虚拟实验室环境&#xff0c;恰好填补了从理论到实践…...

Gemma-3-12B-IT WebUI惊艳效果:Agent框架设计+Tool Calling实现

Gemma-3-12B-IT WebUI惊艳效果&#xff1a;Agent框架设计Tool Calling实现 1. 引言&#xff1a;当大模型拥有“手”和“眼” 想象一下&#xff0c;你正在和一个非常聪明的助手聊天。它能回答你的问题&#xff0c;帮你写代码&#xff0c;甚至能创作故事。但当你问它“现在几点…...