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)
上一篇 2025年11月23日 上午7:22
下一篇 2025年11月23日 上午8:01


相关推荐

  • nuget无法下载_百度云下载慢的最佳解决办法

    nuget无法下载_百度云下载慢的最佳解决办法解决NuGet下载太慢的问题

    2022年4月22日
    231
  • KETTLE教程:转换

    KETTLE教程:转换所谓的转换,可以理解为将数据开中的数据转换为excel表格,txt文档,.bat等格式输出;将excel表格,txt文档,.bat等格式转换成数据库中表格的数据。kettle的转换功能十分便捷,大大减少了我们的工作量。下面开始介绍如何使用kettle进行转换:以文本转换为mysql数据表为例首先,点击文件:在文件中新建→转换然后,点击转换下的DB转换:选择要转换成什么数据…

    2022年5月24日
    46
  • Seedance 2.0 即将上线:特性、预期发布时间、以及如何在 Atlas Cloud上使用

    Seedance 2.0 即将上线:特性、预期发布时间、以及如何在 Atlas Cloud上使用

    2026年3月13日
    2
  • 压力换算公斤单位换算_压力单位换算表

    压力换算公斤单位换算_压力单位换算表压力单位换算表来源:华强电子网作者:华仔浏览:1163时间:2016-08-1014:18标签:摘要:november6,2002牛顿/米2(帕斯卡)(n/m2)(pa)公斤力/米2(kgf/m2)公斤力/厘米2(kgf/cm2)巴(bar)标准大气压(atm)毫米水柱4oc(mmh2o)毫米水银柱0oc(mmhg)磅/英寸2(lb/in2,psi)牛顿/米2(帕斯卡)(n…

    2022年7月27日
    15
  • 微信测试公众号如何进行支付测试

    微信测试公众号如何进行支付测试大家都知道微信公众号有正式号和测试号之分 测试号是不具备支付接口的能力 所以想要在测试环境测试微信公众号支付 就必须使用正式账号的 appid key 商户号以及 openid 1 页面的微信 JSSDK 的配置参数以及签名使用的 appid 要使用正式号的 appid 2 调用微信统一下单接口的 appid 商户号 key 以及 openid 需要使用正式号的即在测试公众号支付 最简单的方式

    2026年3月19日
    1
  • C语言常见面试题_嵌入式面试题 c语言

    C语言常见面试题_嵌入式面试题 c语言1.标识符标识符是C程序的最基本组成部分,例如:变量名称、函数名称、数据类型等等,都是一个标识符。标识符的要求是:必须由字母(区分大小写)、数字、下划线组成。而且,标识符的第一个字符不可以是数字。例如:abc—合法_abc123—合法abc555—合法123abc—非法abc$!!—非法下列字符串可以用作C++标识…

    2022年8月28日
    5

发表回复

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

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