C++ 中有符号数转化为无符号数

2023-11-07

1 背景知识

我的计算中:
- char 类型占 8 个比特位, unsigned char 类型能表示的数的范围为 0 ~ 2^8
-1,即 0 ~ 255,共 256 个数;
- int 类型占 32 个比特位,那么 unsigned 类型所能表示的数的范围为 0 ~ 2的32次方 - 1,即 0 ~4294967295,共 4294967296 个数

2 示例代码

int main() {

    unsigned  char a = -2 ;
    unsigned  char b = -258 ;
    unsigned  char c = 258 ;
    int A = a ;
    int B = b ;
    int C = c ;
    cout << "A = " << A << endl ;
    cout << "B = " << B << endl ;
    cout << "C = " << C << endl ;
    int e = -42 ;
    unsigned  int i = 10 ;
    cout << e + i << endl ;
    return 0;
}

结果:

A = 254
B = 254
C = 2
4294967264

解释:
当我们赋值给无符号类型一个超出它表示范围的值时,结果是初始值对无符号表示数值总数取模后的余数。-2 mod 256 = -2 - 256*(-2/256) 下取整。-258 和 258 同理。

当一个表达式中既有无符号数又有int值时,那个int值就会转化为无符号数。 将-42转化为无符号数就是-42 % 4294967296。

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

C++ 中有符号数转化为无符号数 的相关文章

随机推荐

  • 【CSS】CSS 选择器

    CSS 选择器 1 基础选择器 1 1 元素选择器 语法 标签名 元素选择器会选中对应标签名的HTML元素 例如 p div span 等 1 2 类选择器 语法 类名 类选择器会选中class属性为指定类名的HTML元素 例如 div c
  • 29岁,转行python,一举拿下14k的offer,高薪方法太绝了

    前言 我转行之前从事的工作是商场管理 努力了4年左右的时间才做到楼层经理 但是工资太低并且事情太多 薪资才6K 我的工作需要东奔西跑 每次前往下一个工作地点的时候 我就在想我真的喜欢这种生活吗 偶然有一天 在微信平台上看到的一则Python
  • 美通企业日报

    今日要闻 2019中国最佳表现城市排行榜发布 世界著名智库米尔
  • 【C语言程序设计】学生信息管理系统

    目录 一 实验任务 二 实验代码 三 运行效果 一 实验任务 学生信息管理系统设计 学生信息包括 学号 姓名 年龄 性别 出生年月 地址 电话 E mail等 试设计一学生信息管理系统 使之能提供以下功能 1 系统以菜单方式工作 2 学生信
  • Python 1——温度转换代码分析

    Python 1 主要参考中国大学MOOC 北京理工大学课程 TempConvert2 py 注释 TempStr input 请输入带有符号的温度值 if TempStr 1 in F f C eval TempStr 0 1 32 1
  • c语言程序设计薪水,C语言程序设计  输入10名职工的职工号和工资,计算平均工资并输出低于平均工资的职工号和工资。...

    满意答案 偶要蟹黄堡 2013 11 24 采纳率 40 等级 12 已帮助 6292人 我给你编写了一个简单的 你自己参考一下 自己润色吧 include typedef struct employee char employee num
  • GNSS系列(1)------GNSS坐标系转换

    由于工作需要 最近开启了GNSS系列文章的撰写工作 发布于公司官网 现将其同步至CSDN 原文链接 http onemo10086 com school article 165 GNSS定位不准确 漂移了好几公里 是怎么回事呢 相信有不少用
  • Unity窗口标题栏显示项目路径

    Unity项目开发过程中会有主干分支等等很多版本 同时打开多个项目时无法区分各个Unity窗口是哪个版本 可以把项目完整路径设置到窗口标题栏方便区分 方法如下 UpdateUnityEditorProcess cs using System
  • 类 模板 已经声明为非类 模板

    类 模板 已经声明为非类 模板 解决方案 原因是在当前包下 已经定义了AA类 解决方案 更改模板类AA的类名
  • Linux系统环境搭建

    一 VM虚拟机创建步骤 1 打开VM点击新创建虚拟机 一直点击下一步到下图显示这里 然后点击自定义硬件 选择IOS映像文件 选择映像文件后点击关闭 然后启动虚拟机 点击连接网络开关 显示已连接后 点击开始安装虚拟机 设置密码 安装完成后点击
  • Ubuntu 生成core文件

    man core 命令 可查阅关于core dump file的详细信息 下文是我的一些总结 core dump file 是进程终止时的内存映像 是个磁盘文件 可用来调试 但是有时程序显示 段错误 核心已转储 时 并没有生成core文件
  • STM32实现红外感应传感器功能

    原理 人体都有恒定的体温 一般在 37 度 所以会发出特定波长 10um 左右的红外线 人体发射的 10um 左右的红外线通过菲涅尔滤光片增强后聚集到红外感应源上 这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡 向外释放电荷 后
  • 西门子tcpip通讯实例_西门子1200PLC,组态王与Access数据库通讯--⑤设置PLC设备

    西门子1200PLC 组态王与Access数据库通讯 设置PLC设备 设置PLC设备 1 0 打开组态王软件 打开工程 会看到如下界面 点击COM2 2 0 可以看到新建 点击新建设备 现在我们要连的是西门子系列的1200 所有选择西门子
  • vscode C++配置

    一般配置 在创建了工作区域以后 会有一个 vscode文件夹 里边有launch json tasks json两个文件 launch json 使用 IntelliSense 了解相关属性 悬停以查看现有属性的描述 欲了解更多信息 请访问
  • 向eclipse的JavaWeb项目中导入jar包--备忘录

    一 在你所需的jar包网站下载对应的jar包 如org apache commons lang jar 二 复制粘贴到该JavaWeb的WEB INF目录下的lib目录下 如 三 右键该jar包选择Build Path gt Configu
  • 【华为机试真题 JAVA】字符串删除后的最大数值-100

    题目描述 给定一个由纯数字组成以宇符串表示的数值 现要求字符串中的每个数字最多只能出现2次 超过的需要进行删除 删除某个重复的数字后 其它数字相对位置保持不变 如34533 数字3重复超过2次 需要册除其中一个3 删除第一个3后获得最大数值
  • cuda C++ cmake makefile

    https blog csdn net u011679999 article details 80041081 spm 1001 2014 3001 5502 https blog csdn net comedate article det
  • 控制微信公众号物理键返回url

    总有一些奇葩的需求 在公众号中 如果你写的模块是一个公众号的子模块 那么当你在模块的第一级时 再点返回 应该是返回到公众号的主页 也就是模块区域 而不是返回你上一个地址 直接上代码 1 先监听到物理返回键 在mounted钩子定义 再去de
  • C++ 左值、右值、右值引用

    C 左值 右值 右值引用 发表于2016 2 3 15 49 35 98人阅读 分类 C 在C语言中 我们常常会提起左值 lvalue 右值 rvalue 这样的称呼 而在编译程序时 编译器有时也会在报出的错误信息中会包含左值 右值的说法
  • C++ 中有符号数转化为无符号数

    1 背景知识 我的计算中 char 类型占 8 个比特位 unsigned char 类型能表示的数的范围为 0 2 8 1 即 0 255 共 256 个数 int 类型占 32 个比特位 那么 unsigned 类型所能表示的数的范围为