c语言求一个数的补码_反码补码原码怎么转换

c语言求一个数的补码_反码补码原码怎么转换原码、反码和补码1).数据在内存中存储的时候都是以二进制的形式存储的.intnum=10;原码、反码、补码都是二进制.只不过是二进制的不同的表现形式.数据是以补码的二进制存储的.2).1个int类型的变量.在内存中占据4个字节,32位.00000000000000000000000000000000在不考虑正负的情况下.1个int类型的变量可以表示接近43e种数据.为了可以表示正负…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原码、反码和补码

1).数据在内存中存储的时候都是以二进制的形式存储的.

int num = 10;

原码、反码、补码都是二进制.只不过是二进制的不同的表现形式.

数据是以补码的二进制存储的.

2). 1个int类型的变量.在内存中占据4个字节, 32位.

00000000 00000000 00000000 00000000

在不考虑正负的情况下.1个int类型的变量可以表示接近43e种数据.

为了可以表示正负性.使用最高为来表示这个数的正负性.

如果最高为是0 那么表示这个数是1个正数

如果最高为是1 那么表示这个数是1个负数.

所以,来表示数据的只有31位. 所以,1个int类型的变量.

最小值是: -2147483648  最大值是:2147483647

3). 原码

最高位表示符号位. 剩下的位数.是这个数的绝对值的二进制.

10的原码.

00000000 00000000 00000000 00001010

-8的原码.

10000000 00000000 00000000 00001000

绝对值: 正数的绝对值是自己,负数的绝对值去掉负号.

-20.

10000000 00000000 00000000 00010100

4). 反码

正数的反码就是其原码.

负数的反码就是在其原码的基础之上 符号位不变,其他位取反.

10的反码:

10的原码:00000000 00000000 00000000 00001010

10的反码:00000000 00000000 00000000 00001010

-8

-8的原码:10000000 00000000 00000000 00001000

-8的反码:11111111 11111111 11111111 11110111

5). 补码

正数的补码就是其原码.

负数的补码就是在其反码的基础之上+1

10.

10的原码:00000000 00000000 00000000 00001010

10的反码:00000000 00000000 00000000 00001010

10的补码:00000000 00000000 00000000 00001010

-8

-8的原码:10000000 00000000 00000000 00001000

-8的反码:11111111 11111111 11111111 11110111

-8的补码:11111111 11111111 11111111 11111000

6). 任何数据都是以其二进制的补码形式存储在内存中的.

int num = -8;

7). 为什么数据要以补码的形式存储呢?

计算机中只有加法没有减法.为了更加低成本的计算出结果,所以使用补码来存储数据.

3 + 2;

3 – 2; 这个减法运算对于计算机而言它的理解是 3 + (-2); 1

使用原码计算.

3的原码    00000000 00000000 00000000 00000011

-2的原码   10000000 00000000 00000000 00000010

—————————————————-

10000000 00000000 00000000 00000101 结果是1个负数明显是不对的

使用反码计算.

3 的反码:  00000000 00000000 00000000 00000011

-2的反码:  11111111 11111111 11111111 11111101

————————————————–

00000000 00000000 00000000 00000000        0

使用补码计算

3 的补码:   00000000 00000000 00000000 00000011

-2的补码:   11111111 11111111 11111111 11111110

————————————————-

00000000 00000000 00000000  00000001       1

注:使用补码来做运算效率是最高的.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193562.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 简述android触屏事件的处理_android模拟点击屏幕事件

    简述android触屏事件的处理_android模拟点击屏幕事件Android屏幕操作屏幕是用户和Android设备交互的主要媒介,屏幕分为触屏和非触屏。Android设备目前有四种类型:AndroidPhone,AndroidTablet,AndroidWear和AndroidTV。AndroidTV大都使用非触屏,其他三类设备则大都使用触屏。对非触屏设备,用户可以通过键盘鼠标或遥控器在屏幕上操作。对触屏设备,用户主要通过手指或触控笔等工具在屏幕上…

    2022年9月11日
    0
  • 使用工具清理Windows的winsxs目录

    使用工具清理Windows的winsxs目录一、使用软件工具清理1、使用DriverStoreExplorer清理DriverStoreExplorer下载地址:https://github.com/lostindark/DriverStoreExplorer/releases/download/v0.11.64/DriverStoreExplorer.v0.11.64.zip使用方法:(1)双击运行(使用管理员)(2)点击“选取旧的驱动”,之后点击“删除驱动包”2、使用Winsxs清理工具笔者吐槽:这个软件提供的论坛我上去看

    2025年7月7日
    0
  • python百度文库怎么免费下载文档(python编程是啥)

    每天早晨8点50分,准点开车打卡今天跟大家推荐一个简单实用的下载百度积分文档方法。虽然现在很多人都很少用百度文库中的东西了,不过后台还是经常收到一些读者留言,求帮忙下载百度文档或者请教如何才能免下载券下载。其实下载百度文库的方法,我很久之前就推荐过给大家了,可能你不记得了,推荐个免费的积分文档下载神器。这篇文章是推荐你使用冰点下载器,就可以自由下载百度,豆丁,畅享,mbalib,hp009,…

    2022年4月13日
    35
  • android 扫码二维码_安卓手机二维码扫描器

    android 扫码二维码_安卓手机二维码扫描器最近公司项目App中要集成二维码扫描来适应在户外工作的时候,对码头集装箱等上面贴的A4纸张打印的二维码进行识别,一般App二维码集成后,能扫出来就不管了,但是我们在集成成功后,根据用户反馈,在户外的环境下,很多二维码识别不了,或者识别速度慢,我们自己也是适用了一下,发现也确实是这样. 一般造成这个识别不出来的原因,我们总结了以下几点:A4纸张打印的标签二维码,本来打印就不是特别清晰,…

    2025年7月14日
    0
  • tomcat7下载地址

    tomcat7下载地址:https://tomcat.apache.org/download-70.cgi转载于:https://www.cnblogs.com/yang-xiansen/p/10388311.html

    2022年4月3日
    394
  • 京东云免费SLL正式(HTTPS)免费申请及nginx配置

    京东云免费SLL正式(HTTPS)免费申请及nginx配置京东云免费ssl证书申请及配置一、证书申请1、京东云地址:[https://www.jdcloud.com/](https://www.jdcloud.com/)2、登录京东云后可在左上角云服务中搜索:SSL3、选择搜索出的选项中的SSL数字证书,进入SSL证书管理平台;4、在左侧选择申购管理,然后点击申购证书5、在申购SSL证书界面,按下图选择对应的证书类型,即可购买;6、订单确认,立即支付即可完成证书的申请二、证书配置1、完善域名信息1、在申购管理中,找到刚才购买的证书,点击完善信息;2、在下面的输入

    2022年10月14日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号