C/C++中类型变量转换之间的数值溢出

2023-10-27

在编程中,不同类型的值转换时会产生溢出问题,溢出问题的主要发生在类型范围大的数值转换成范围小的数值的过程中。

例:double->float->long->int->short->byte/char。

下面举个例子:

#include <stdlib.h>
#include <stdio.h>
void main()
{
    int m_a = 200;
    byte m_b = ( byte)m_a; 
    printf("%d",m_b);

}

其中:

32位int

          0000 0000 0000 0000 0000 0000 1100 1000

 8位的char               

                                                                1100 1000

数在计算机中以补码形式存放在内存中,通过求原码来计算真值。

补码-1 =反码,反码取反得原码,原码: 1011 1000

所以输出的为-56。

关于原码,补码的知识,可以参考我的其他博文。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++中类型变量转换之间的数值溢出 的相关文章

  • 手写android Log 源码(简单版)

    有一天晚上 看了两篇老罗的博客 Android日志系统Logcat源代码简要分析 和 Android日志系统驱动程序Logger源代码分析 于是我就想android10 中 log 是怎么实现的 然后又看了一篇别人的博客 Android10
  • C++类内存分布

    书上类继承相关章节到这里就结束了 这里不妨说下C 内存分布结构 我们来看看编译器是怎么处理类成员内存分布的 特别是在继承 虚函数存在的情况下 工欲善其事 必先利其器 我们先用好Visual Studio工具 像下面这样一步一步来 先选择左侧
  • 构造函数属性为protected或者private时

    在c 中 不仅限于c 一个函数被声明为protected或者private时 那也就意味着不能被外部直接调用了 类的成员函数add 是private class cla private int add int a int b return
  • 显式调用构造函数和析构函数

    今天跟同事聊天 他说到STL源码有用到显示调用析构函数 试一了一下 果然能行 include lt iostream gt using namespace std class MyClass public MyClass cout lt l
  • C++中虚析构函数的作用

    我们知道 用C 开发的时候 用来做基类的类的析构函数一般都是虚函数 可是 为什么要这样做呢 下面用一个小例子来说明 有下面的两个类 class ClxBase public ClxBase virtual ClxBase virtual v
  • Qt/MFC获取主窗口的指针

    在不同的窗口类中 不同的类之间需要互相访问 有时需要知道另一个窗口类的指针来调用他的函数 本文介绍两种方法 如下 Qt 方法1 WId ir WId FindWindow NULL L Target className pM classNa
  • Modern C++的应用,实现golang中的defer

    modern C 实现 golang 的defer 关于RAII的一些思考 defer 的简介 注 没有 golang 语法基础的读者可以看看 反之 可以跳过 golang语法中的defer是什么 defer用来声明一个延迟函数 把这个函数
  • 两个C++编译异常及解决方法-does not name a type和field `XX' has incomplete type

    两个C 编译错误及解决办法 does not name a type和field XX has incomplete type 编译错误一 XX does not name a type 编译错误二 field XX has incompl
  • C++虚析构函数、纯虚析构函数

    虚析构函数 析构函数的工作方式是 最底层的派生类 most derived class 的析构函数最先被调用 然后调用每一个基类的析构函数 因为在C 中 当一个派生类对象通过使用一个基类指针删除 而这个基类有一个非虚的析构函数 则结果是未定
  • C++异常处理机制详解

    异常处理是一种允许两个独立开发的程序组件在程序执行期间遇到程序不正常的情况 异常exception 时相互通信的机制 本文总结了19个C 异常处理中的常见问题 基本涵盖了一般C 程序开发所需的关于异常处理部分的细节 1 throw可以抛出哪
  • c语言---字符串为什么不能修改内容???字符串常量存放在常量区吗???

    疑惑 1 const修饰的变量都存放在常量区吗 2 字符串常量存放在那 为什么字符型指针 char 指向字符串不能修改其内容 字符串的演变 char p 123456 123456 常量字符串 char static const char
  • C++ 创建共享内存

    共享内存用于实现进程间大量的数据传输 共享内存是在内存中单独开辟一段内存空间 这段内存空间有自己特有的数据结构 包括访问权限 大小和最近访问时间等 1 shmget函数 include
  • C++ 构造函数和析构函数是否可以继承?

    先看一个例子 cpp view plain copy include
  • 字符编码与C++

    背景 C 的项目 字符编码是一个大坑 不同平台之间的编码往往不一样 如果不同编码格式用一套字符读取格式读取就会出现乱码 所以本文旨在对字符编码的知识做一个大概的梳理 字符编码定义 计算机是以二进制的形式来存储数据的 它只认识 0 和 1 两
  • c++的默认拷贝构造函数,从深度拷贝和浅拷贝说起

    本文收录于微信公众号 LinuxOK ID为 Linux ok 关注公众号第一时间获取更多技术学习文章 1 c 类的默认拷贝构造函数的弊端 c 类的中有两个特殊的构造函数 1 无参构造函数 2 拷贝构造函数 它们的特殊之处在于 1 当类中没
  • 移动构造-C++11

    移动构造 移动构造是C 11标准中提供的一种新的构造方法 在现实中有很多这样的例子 我们将钱从一个账号转移到另一个账号 将手机SIM卡转移到另一台手机 将文件从一个位置剪切到另一个位置 移动构造可以减少不必要的复制 带来性能上的提升 有些复
  • struct和typedef struct彻底明白了

    struct和typedef struct 分三块来讲述 1 首先 注意在C和C 里不同 在C中定义一个结构体类型要用typedef typedef struct Student int a Stu 于是在声明变量的时候就可 Stu stu
  • 使用缺省的拷贝构造函数带来的危险性

    我此前另外一篇文章通过类String看拷贝构造函数 赋值函数的作用和区别 对于更深的拷贝构造函数讨论大家可以参见这篇帖子 C 类对象的复制 拷贝构造函数 通过编写类String的拷贝构造函数和赋值函数介绍了一些拷贝构造数 本文着重介绍拷贝构
  • cout 格式化输出

    将 cout 的 flag 保存到变量 以便修改后的恢复 ostream fmtflags old cout flag 无参将返回当前 flag 值 cout flag old 恢复到原先保存的值 将 bool 值以 literals 输出
  • C语言的不完整类型和前置声明

    声明与定义 Declaration and Definition 开始这篇文章之前 我们先弄懂变量的declaration和definition的区别 即变量的声明和定义的区别 一般情况下 我们这样简单的分辨声明与定义的区别 建立存储空间的

随机推荐

  • 使用ffmpeg对rtsp视频截图

    ffmpeg i rtsp 192 168 1 64 554 Streaming Channels 1 y f mjpeg t 0 001 s 1280x720 test jpg 使用ffmpeg对摄像头的视频流进行截图 rtsp 192
  • Linux内网环境安装nginx,离线安装nginx教程

    说明 本教程针对内网环境 没有互联网环境 安装nginx 安装前测试 nginx未安装时 无法访问 curl http localhost 80 第一步 请参考教程 本地yum源安装 教程连接如下 https note youdao com
  • IDEA在XML中提示SQL

    首先配置Database 选择数据库类型之后 填写数据库配置 配置完成之后右键表名 mybatis generator生成从controller dao单表的代码 Jump to Query Console跳转到IDEA编写SQL的页面 非
  • Stable Diffusion界面参数及模型使用

    系列文章目录 本地部署Stable Diffusion教程 亲测可以安装成功 谷歌Colab云端部署Stable Diffusion 进行绘图 文章目录 系列文章目录 前言 Stable Diffusion界面参数 一 模型是干什么的 二
  • uniapp引入iconfont图标

    1 iconfont官网下载好图标并解压 2 将以下文件复制到项目中 3 文件在项目中的位置 4 打开iconfont css文件修改 font face 里面的路径 修改为相对路径 static fonts 示例如下 5 在App vue
  • 利用mysql load data秒级别大批量写入数据,建议单次10w+以上~速度远超批量insert,附上完整封装工具

    平时项目中 有时候可能会遇到需要大批量写入数据到mysql数据库中的场景 这时候我们可以利用mysql自带的load data语法 先将数据写入文本文件 再将文件读入数据库 具体用法看下面 1 表结构如下 CREATE TABLE wewo
  • Win10家庭版禁用系统更新方法汇总及问题解决

    这个文章针对没有组策略gpedit msc的win10家庭版 网上有几种方法 我在这里汇总一下 并记录之后遇到的问题及 一 先启用组策略 然后禁止更新 1 启用组策略 win10家庭版是没有组策略gpedit msc的 在电脑任意位置创建一
  • 微软宣布在 Excel 中使用 Python:结合了 Python 的强大功能和 Excel 的灵活性。

    文章目录 Excel 中的 Python 有何独特之处 1 Excel 中的 Python 是为分析师构建的 高级可视化 机器学习 预测分析和预测 数据清理 2 Excel 中的 Python 通过 Anaconda 展示了最好的 Pyth
  • C语言基础系列(三)——链表

    C语言基础系列 三 链表 1 链表的定义 链表是一些包含数据的独立结构体 被称为节点 的集合 1 1 单链表 在单链表中 每个节点包含一个指向链表下一节点的指针 示意图如下 定义的节点结构体声明如下 typedef struct NODE
  • 合宙Air103

    目录 基础资料 探讨重点 实现功能 硬件准备 软件版本 软件使用 初始化硬件i2c 发送指令给AHT10触发测量并读数 状态位说明 读取流程 核心函数注 基础资料 基于Air103开发板 Air103 LuatOS 文档 上手 开发上手 L
  • Swagger3快速入门

    Swagger 快速入门SpringBoot集成Swagger 依赖 配置类 SwaggerConfig 访问 配置Swagger 可以通过apiInfo 属性配置文档信息 完整版 访问 controller 测试接口 正则表达式设置路径范
  • 数据结构 每日一练:选择 + 编程

    目录 选择 编程 选择 1 在一个单链表中 已知q所指结点是p所指结点的前驱结点 若在q和p之间插入结点s 则执行 A s gt next p gt next p gt next s B p gt next s gt next s gt n
  • 网络流经典模型——最大权闭合子图

    网络流经典模型 最大权闭合子图 什么是闭合子图 闭合子图的概念 通俗点说就是选出一个图的子图 使得子图中的所有点出度指向的点依旧在这个子图内 则说明此子图是闭合子图 如下图 最大权闭合子图 假设每个点具有点权值 在一个图的所有闭合子图中 点
  • 勾选同意XXX协议,才能点击提交一类的JS页面,源码如下

    真是醉了 之前的可以用 正常都会调一下的 直接抄肯定随着时间推移会有点问题 算了 我自己改改
  • mmsegmentation继续意外中断,继续训练

    先进行微调的增量学习 有机会的话则继续进行训练 之前实验室突然停电了 然后憨憨的我直接重新训练了 后来仔细看了说明文档 发现自己当时可以继续训练的
  • 吾道——快

    前言 我曾是拖延症重度患者 曾经尝试在知乎上寻找答案 看完了相关答案 发现答案惊人的相似 拖延症患者追求高效 效率 拖延症患者患者都有做计划 有很高的期待 完美主义 拖延症患者都有效率惊人爆表的状态 Deadline Deadline是生产
  • Mac电脑使用:您的安全性偏好设置仅允许安装来自App Store和被认可的开发者的应用(解决方法)

    昨天准备给电脑上安装 SEED 然后别人给我一个压缩包安装 结果安装之后 打开软件却弹出提示框 提示 打不开SEED 因为它来自身份不明的开发者 点击 好 弹框关闭 SEED却打不开 一 造成有这种提示的原因是由于你的电脑安全性设置比较高导
  • 手写android Log 源码(简单版)

    有一天晚上 看了两篇老罗的博客 Android日志系统Logcat源代码简要分析 和 Android日志系统驱动程序Logger源代码分析 于是我就想android10 中 log 是怎么实现的 然后又看了一篇别人的博客 Android10
  • 深入理解Java虚拟机jvm-Java堆溢出示例OutOfMemoryError: Java heap space

    Java堆溢出示例 示例 虚拟机参数 结果 原因分析 示例 import java util ArrayList import java util List VM Args Xms20m Xmx20m XX HeapDumpOnOutOfM
  • C/C++中类型变量转换之间的数值溢出

    在编程中 不同类型的值转换时会产生溢出问题 溢出问题的主要发生在类型范围大的数值转换成范围小的数值的过程中 例 double gt float gt long gt int gt short gt byte char 下面举个例子 incl