东兴移动网站建设/石家庄seo管理

东兴移动网站建设,石家庄seo管理,b2c网站名称和网址,电商代运营公司怎么样目录 一.相关知识点 1.截断: 2.整形提升: 3.如何 截断,整型提升? (1)负数 (2)正数 (3)无符号整型,高位补0 注意:提升后得到的…

目录

一.相关知识点

1.截断:

2.整形提升:

3.如何 截断,整型提升?

(1)负数

(2)正数

(3)无符号整型,高位补0

注意:提升后得到的是补码。要根据打印类型,判断是否有符号位;有效数字

二.例题

1.

2.

3.

4.

疑问:不应该算数转换为unsigned int 吗?

5.

6.


一.相关知识点

1.截断:

直接保留低位的二进制位

2.整形提升:

表达式中的字符(char)短整形(short)操作数在使用之前被转换为普通整型(int),这种转换称为整型提升

3.如何 截断,整型提升?

整型提升是按照变量的数据类型的符号位来提升的

(1)负数
char c1 = -1;

截断:-1的补码为:11111111111111111111111111111111 。 -1为int占4字节,c1是char占1字节。

         直接保留 int 所占4字节中低位的1字节的二进制位:11111111

整型提升:因为 char 为 signed char 。所以整形提升的时候,高位补充符号位,即为1

                 提升后的结果为:11111111111111111111111111111111

(2)正数
char c2 = 1;

截断:1的补码为:00000000000000000000000000000001 。1为int占4字节,c1是char占1字节。

           直接保留 int 所占4字节中低位的1字节的二进制位:00000001

整型提升:因为 char 为 signed char 。所以整形提升的时候,高位补充符号位,即为0

                 提升后的结果为:00000000000000000000000000000001

(3)无符号整型,高位补0

注意:提升后得到的是补码。要根据打印类型,判断是否有符号位;有效数字

二.例题

1.

int main()
{char a = -1;signed char b = -1;unsigned char c = -1;printf("a=%d,b=%d,c=%d", a, b, c);return 0;
}

题解:

int main()
{char a = -1;//-1 是整数,32bit//11111111111111111111111111111111   (int)-1的补码//11111111 - char a 截断//11111111111111111111111111111111   提升(得到补码)signed char b = -1; //和a等价unsigned char c = -1;//11111111111111111111111111111111   (int)-1的补码//11111111 - char a 截断//00000000000000000000000011111111 - 提升,无符号的整型,高位补0// //      -1    -1   255printf("a=%d,b=%d,c=%d", a, b, c);//%d是打印有符号的整数return 0;
}

2.

int main()
{char a = -128;printf("%u\n", a);//%u 打印无符号整型return 0;
}

题解:

int main()
{char a = -128;//10000000000000000000000010000000//11111111111111111111111101111111//11111111111111111111111110000000 - 128的补码//10000000 - a//11111111111111111111111110000000//%u - 第一位不是符号位printf("%u\n", a);//4294967168return 0;
}

3.

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

题解:

int main()
{char a = 128;//00000000000000000000000010000000 - 128的补码//10000000 - a//11111111111111111111111110000000printf("%u\n", a);//4294967168return 0;
}

4.

int main()
{int i = -20;unsigned int j = 10;printf("%d\n", i + j);return 0;
}

题解:

int main()
{int i = -20;unsigned int j = 10;//10000000000000000000000000010100 - -20的原码//11111111111111111111111111101011 - -20的反码//11111111111111111111111111101100 - -20的补码//00000000000000000000000000001010 -  10的补码//11111111111111111111111111110110 - 和的补码//11111111111111111111111111110101 - 和的反码//10000000000000000000000000001010 - 和的原码printf("%d\n", i + j);//-10return 0;
}
疑问:不应该算数转换为unsigned int 吗?

如果这样,根据和的反码,第一位不是符号位,结果为4294967286

但是,我们是以 %d 形式打印的,如果是以 %u 打印,确实是4294967286。

我以 %d(有符号的整数) 的形式打印,我就认为内存里存的是有符号数。

        %u                                               我就认为内存里存的是无符号数。

理论上说,i+j 结果确实是无符号数。但是你是个无符号数也悠不住我用 %d 来打印。

一个数据放在内存里,它有无符号没法确定,是用的人决定它有无符号

从哲学角度来说,一个东西是什么,取决于看待的人的视角

5.

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

由于 i 是 unsigned int ,所以 i 不论怎么减,都不会 > 0 。

我们这样演示:

#include <windows.h>
int main()
{unsigned int i;for (i = 9; i >= 0; i--){printf("%u\n", i);Sleep(1000);}return 0;
}

(2)
int main()
{char a[1000];int i;for (i = 0; i < 1000; i++){a[i] = -1 - i;}printf("%d", strlen(a));return 0;
}

strlen 统计 ' \0 ' 之前的个数,' \0 ' 的ASCII码值为0 。所以本题是想让你判断,什么时候 a 里放第一个0

char 大多数是 signed char 其取值范围为 -128~127

所以放到 a 里的数字依次是:-1  -2  -3 ...... -127  -128  127  126  ...... 2  1  0  -1  -2  ......

到 0 之前是 128+127=255,结果就是255

(3)
unsigned char i = 0;//0~255int main()
{for (i = 0; i <= 255; i++){printf("hello world\n");}return 0;
}

i <= 255 的判断进入循环条件一直成立,循环不会停下来,一直打印 hello world

6.

int main()
{char a = 3;char b = 127;char c = a + b;printf("%d", c);return 0;
}

题解:

int main()
{//char --> signed charchar a = 3;//00000000000000000000000000000011//截断//00000011 - achar b = 127;//00000000000000000000000001111111//截断 //01111111 - bchar c = a + b;//00000011//01111111//整型提升//00000000000000000000000000000011//00000000000000000000000001111111//00000000000000000000000010000010 - 和的补码// 截断//10000010 - cprintf("%d\n", c);//-126//%d 是打印十进制的整数//11111111111111111111111110000010 - 补码//11111111111111111111111110000001//10000000000000000000000001111110 - 原码//-126return 0;
}

本篇的分享就到这里了,感谢观看,如果对你有帮助,别忘了点赞+收藏+关注

小编会以自己学习过程中遇到的问题为素材,持续为您推送文章

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

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

相关文章

HTML中滚动加载的实现

设置div的overflow属性&#xff0c;可以使得该div具有滚动效果&#xff0c;下面以div中包含的是table来举例。 当table的元素较多&#xff0c;以至于超出div的显示范围的话&#xff0c;观察下该div元素的以下3个属性&#xff1a; clientHeight是div的显示高度&#xff0c;scrol…

人工智能助力家庭机器人:从清洁到陪伴的智能转型

引言&#xff1a;家庭机器人进入智能时代 过去&#xff0c;家庭机器人只是简单的“工具”&#xff0c;主要用于扫地、拖地、擦窗等单一任务。然而&#xff0c;随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;家庭机器人正经历从“机械助手”向“智能管家”甚…

Flume详解——介绍、部署与使用

1. Flume 简介 Apache Flume 是一个专门用于高效地 收集、聚合、传输 大量日志数据的 分布式、可靠 的系统。它特别擅长将数据从各种数据源&#xff08;如日志文件、消息队列等&#xff09;传输到 HDFS、HBase、Kafka 等大数据存储系统。 特点&#xff1a; 可扩展&#xff1…

Spring源码解析

第一讲 容器接口 BeanFactory和ApplicationContext接口的具体继承关系&#xff1a; ApplicationContext 间接继承了BeanFactory BeanFactory是父接口ApplicationContext是子接口&#xff0c;里面一些功能调用了BeanFactory BeanFactory的功能 表面上只有 getBean&#xff0…

Django Rest Framework 创建纯净版Django项目部署DRF

描述创建纯净版的Django项目和 Django Rest Framework 环境的部署 一、创建Django项目 1. 环境说明 操作系统 Windows11python版本 3.9.13Django版本 V4.2.202. 操作步骤(在Pycharm中操作) 创建Python项目drfStudy、虚拟环境 ​虚拟环境中安装 jdangopip install django==4.…

图解AUTOSAR_CP_NetworkManagementInterface

AUTOSAR 网络管理接口(Nm)详解 AUTOSAR 网络管理接口规范与实现指南 目录 1. 概述 1.1. 网络管理接口的作用1.2. 网络管理接口的特点 2. 网络管理接口架构 2.1. 架构概览2.2. 模块交互关系 3. 网络管理状态机 3.1. 状态定义3.2. 状态转换 4. 协调算法 4.1. 协调关闭流程4.2. 同…

java学习总结(八):Spring boot

一、SpringBoot简介 传统Spring开发缺点&#xff1a; 1、导入依赖繁琐 2、项目配置繁琐 Spring Boot是全新框架(更像是一个工具&#xff0c; 脚手架)&#xff0c;是Spring提供的一个子项目&#xff0c; 用于快速构建Spring应用程序。 随着Spring 3.0的发布&#xff0c;Spring 团…

openEuler24.03 LTS下安装MySQL8

前提条件 拥有openEuler24.03 LTS环境&#xff0c;可参考&#xff1a;Vmware下安装openEuler24.03 LTS 步骤 卸载原有mysql及mariadb sudo systemctl stop mysql mysqld 2>/dev/null sudo rpm -qa | grep -i mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps 2>/dev/…

【失败了】LazyGraphRAG利用本地ollama提供Embedding model服务和火山引擎的deepseek API构建本地知识库

LazyGraphRAG测试结果如下 数据&#xff1a; curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt -o ./ragtest/input/book.txt 失败了 气死我也&#xff01;&#xff01;&#xff01;对deepseek-V3也不是很友好啊&#xff0c;我没钱prompt 微调啊&#xff0c;晕死…

ccfcsp3402矩阵重塑(其二)

//矩阵重塑&#xff08;其二&#xff09; #include<iostream> using namespace std; int main(){int n,m,t;cin>>n>>m>>t;int c[10000][10000];int s0,sum0;int d[10000],k[100000];for(int i0;i<n;i){for(int j0;j<m;j){cin>>c[i][j];d[s…

Unity Shader - UI Sprite Shader之简单抠图效果

Sprite抠图效果&#xff1a; 前言 在PhotoShop中我们经常会用到抠图操作&#xff0c;现在就用Shader实现一个简单的抠图效果。 实现原理&#xff1a; 使用当前像素颜色与需要抠掉的颜色相减作比较&#xff0c;然后与一个指定的阈值比较以决定是否将其显示出来&#xff1b; U…

【Mac】安装 Parallels Desktop、Windows、Rocky Linux

一、安装PD 理论上&#xff0c;PD只支持试用15天&#xff01;当然&#xff0c;你懂的。 第一步&#xff0c;在 Parallels Desktop for Mac 官网 下载 Install Parallels Desktop.dmg第二步&#xff0c;双击 Install Parallels Desktop.dmg 第三步&#xff0c;双击安装Paralle…

学习单片机需要多长时间才能进行简单的项目开发?

之前有老铁问我&#xff0c;学单片机到底要多久&#xff0c;才能进行简单的项目开发&#xff1f;是三个月速成&#xff0c;还是三年磨一剑&#xff1f; 今天咱们就来聊聊这个话题&#xff0c;我不是什么高高在上的专家&#xff0c;就是个踩过无数坑、烧过几块板子的“技术老友”…

centos操作系统上传和下载百度网盘内容

探序基因 整理 进入百度网盘官网百度网盘 客户端下载 下载linux的rpm格式的安装包 在linux命令行中输入&#xff1a;rpm -ivh baidunetdisk_4.17.7_x86_64.rpm 出现报错&#xff1a; 错误&#xff1a;依赖检测失败&#xff1a; libXScrnSaver 被 baidunetdisk-4.17.7-1.x8…

蓝牙系统的核心组成解析

一、硬件层&#xff1a;看得见的物理载体 1. 射频模块&#xff08;Radio Frequency Module&#xff09; 专业描述&#xff1a;工作在2.4GHz ISM频段&#xff0c;支持GFSK/π/4 DQPSK/8DPSK调制方式 功能类比&#xff1a;相当于人的"嘴巴"和"耳朵" 发射端…

go的gmp

参考链接&#xff1a;https://www.bilibili.com/video/BV19r4y1w7Nx Golang的GMP调度模型(协程调度器)是其并发编程的核心。GMP代表Goroutine、Machine和Processor三个关键组成部分。Goroutine是Go语言中的轻量级线程&#xff0c;Machine是操作系统的线程&#xff0c;Processor…

Vue3-高级特性

一、Vue中自定义指令 1.认识自定义指令 在Vue的模板语法中我们学习过各种各样的指令&#xff1a;v-show、v-for、v-model等等&#xff0c;除了使用这些指令之外&#xff0c;Vue也允许我们来 自定义自己的指令。 注意&#xff1a;在Vue中&#xff0c;代码的复用和抽象主要还是…

基于CPLD电力/轨道交通3U机箱开关量输出板(DO)

板卡简介&#xff1a; 本板为开关量输出板&#xff08;DO&#xff09;&#xff0c;采用固态继电器用于电平输出或负载驱动&#xff0c;典型输出高电平为DC110V&#xff0c;低电平为0V。 性能规格&#xff1a; 电源&#xff1a;DC5V&#xff0c;DC3.3V&#xff0c;DC15V&#…

【C++经典例题】反转字符串中单词的字符顺序:两种实现方法详解

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;C经典例题 期待您的关注 目录 问题描述 基于快慢指针的解法 基于索引的解法 两种方法的比较 问题描述 在处理字符串相关的问题…

Java基础语法练习45(网络编程)

目录 一、网络的相关概念 1.网络通信 2.网络 3.ip 地址 4.ipv4 地址分类 5.域名 6.网络通信协议 7.TCP 和 UDP 二、InetAddress类 1.相关方法 2.代码示例如下&#xff1a; 三、Socket 1.基本介绍 四、TCP 网络通信编程 1.基本介绍 2.应用示例&#xff1a; 2.1…