关于C语言中源码反码补码的介绍

2023-10-30

最近在入门课里学习了原码反码补码,有些地方理解起来还是比较困难的,所以用一篇文章来梳理一下。

首先我们要考虑这三个码的作用。我们都知道,计算机在储存信息时是使用二进制的(通过电信号的有无来表示0和1),而在C语言中数字类型都是默认有符号位的(在二进制中),这里出现了一个问题:

我们取int数字1,它的二进制为:

00000000000000000000000000000001

而-1的二进制为:

10000000000000000000000000000001

那么数字0呢?难道会出现:

00000000000000000000000000000000和

10000000000000000000000000000000吗?

此时出现了非常严重的问题!数字0出现了两种表达方式:+0和-0,这种模棱两可的情况在编程里是绝对不能出现的。

因此C语言引入了原码反码补码的概念,在将数字转化为二进制存入内存中时,针对全体负数使用转化为反码和补码的方式避开-0,对原码按位取反加1,符号位不变。这样就好理解了

 

 

 

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

关于C语言中源码反码补码的介绍 的相关文章

随机推荐

  • 项目——电子词典(客户端、服务器交互,字典导入,单词查询)

    一 项目要求 登录注册功能 不能重复登录 重复注册 单词查询功能 历史记录功能 存储单词 意思 以及查询时间 基于TCP 支持多客户端连接 采用数据库保存用户信息与历史记录 将dict txt的数据导入到数据库中保存 按下ctrl c退出客
  • Fiddler抓包工具总结

    序章 Fiddler是一个蛮好用的抓包工具 可以将网络传输发送与接受的数据包进行截获 重发 编辑 转存等操作 也可以用来检测网络安全 反正好处多多 举之不尽呀 当年学习的时候也蛮费劲 一些蛮实用隐藏的小功能用了之后就忘记了 每次去网站上找也
  • qt 智能指针介绍

    简介 Qt 提供了很多智能指针 比较常见的有 QPointer QSharedDataPointer QSharedPointer QWeakPointer 和 QScopedPointer 描述 QPointer 4 0 已经过时 可以被
  • php fastcgi,配置apache以fastcgi运行php

    apache默认是用自带的mod php模块运行php 现在我们介绍使用fastcgi来执行php脚本 先说下fastcgi的优点 Fastcgi的优点 从稳定性上看 fastcgi是以独立的进程池运行来cgi 单独一个进程死掉 系统可以很
  • 解决高德地图AMap is not defined

    传送门 https blog csdn net qq 36317441 article details 77187369 总结一下 就是将script 标签引入的高德地图地址 放到body中
  • Leetcode 面试题 01.06.字符串压缩(Compress String LCCI)

    Leetcode 面试题 01 06 字符串压缩 1 题目描述 Leetcode题目链接 字符串压缩 利用字符重复出现的次数 编写一种方法 实现基本的字符串压缩功能 比如 字符串aabcccccaaa会变为a2b1c5a3 若 压缩 后的字
  • 虚拟机占用磁盘越来越大的解决方案大总结

    原文链接 https blog csdn net Shine Su article details 119676646 作者 填坑小霸王 在电脑上安装Vmware 安装ubuntu16 04 进行开发 使用过程中没有在意 忽然有一天发现磁盘
  • 【esp32&lvgl】-2.1 # esp32移植lvgl7驱动st7789屏幕(ESP-IDF框架)

    目录 一 前言 二 代码 三 硬件说明 四 ESP IDF设置 重要 五 屏幕偏移修改驱动文件 参考资料 一 前言 前几天在ardiuno框架下基于platformIO用TFT eSPI库实现了lvgl库的移植 这种方法虽然在lvgl的版本
  • 电源系列1:LDO 基本 原理(一)

    微信公众号 工程师看海 后台回复 LDO仿真文件 转载请注明原文地址 https blog csdn net u013608300 article details 108994763 1 前言 目前市场上无论什么电子产品 只要涉及到电就必须
  • ssh 运行 java,通过ssh将Java应用程序作为后台进程运行

    I m currently developing a simple deployment script for vms running ubuntu All these machines are supposed to run a java
  • 基于Springboot的SSO单点登陆系统的登陆操作实战

    一 前言 1 使用环境 SpringBoot2 X MyBatis 基于redis存储的springSession 2 基础学习 关于SSO的基础学习可以参考该文章 单点登录 SSO 从原理到实现 代码风格使用的是晓风轻的代码规范 对于其中
  • c语言的文法,c语言实现First文法

    最近编译原理课程实验做LL 1 中的First和Follow文法的算法实现 百度了半天 要么是要钱 要么是觉得好复杂 作为学渣的我看不懂 那为了完成实验 只能自己慢慢搞出来 由于之前的课也没怎么听 研究这两个文法都用了好长时间 那么关于Fi
  • Maven下Druid连接池配置及使用

    1 在pom xml中导入架包及jdbc架包
  • 如何做一个成功的系统架构师

    首先 何谓系统架构师 IBM工程师的说明是 架构师的主要责任是提供开发人员和项目经理之间的共用沟通媒体 他们负责让业务规则及需求与工程实践及限制相适应 以确保成功 中文Wiki上的说明是 系统架构师负责设计系统整体架构 从需求到设计的每个细
  • Pytorch学习(3):Tensor合并、分割与基本运算

    文章目录 前言 一 合并Cat Stack 1 Cat 2 Stack 二 分割Split Chunk 1 Split 2 Chunk 三 基本运算 1 加减乘除 2 矩阵乘法mm matmul 3 幂运算 4 指数exp 对数log 5
  • 从一年开发经验的视角看如何优雅编程

    编程绝非易事 需要大家在日常工作中仔细钻研 下面我们从实际业务开发的角度来分析一下如何优雅地进行编程 简单可以总结几点 1 整体理解业务 2 从开发角度分解业务 3 结合各业务点整体分析系统结构 4 针对每一个业务点进行边界分析 5 对每个
  • 网络编程之udp学习之udp的多播(组播)和广播案例03

    概述 关于多播 广播这些我Qt相关的文章 也有讲述过 https blog csdn net weixin 44517656 article details 105950817 ip相关知识 https blog csdn net weix
  • React与Vue的区别和对比

    前言 JavaScript是世界上最流行的语言之一 React和Vue是JS最流行的两个框架 但各有优缺点 本文将详细对比两大框架 目录 前言 一 框架背景 二 框架简介 三 框架共同点 四 各自优势 五 两者区别 六 应用场景 七 总结
  • 图的遍历(DFS & BFS)详解与完整代码+走迷宫

    一 深度优先遍历 DFS 基本思想 从初始访问结点出发 先访问第一个邻接结点 然后再以该邻接结点作为初始结点 访问它的第一个邻接结点 优先向纵向挖掘深入 而不是对一个结点的所有邻接结点进行横向访问 递归过程 深度优先遍历从某个顶点出发 首先
  • 关于C语言中源码反码补码的介绍

    最近在入门课里学习了原码反码补码 有些地方理解起来还是比较困难的 所以用一篇文章来梳理一下 首先我们要考虑这三个码的作用 我们都知道 计算机在储存信息时是使用二进制的 通过电信号的有无来表示0和1 而在C语言中数字类型都是默认有符号位的 在