一、概念

1、正数的反码和补码都与原码相同。
        2、而负数的反码为对该数的原码除符号位外各位取反。
              负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1

二、举例

(1)原码:一个正数,按照绝对值大小转换成的二进制数;

一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。

比如

00000000 00000000 00000000 00000101 是 5的 原码。

10000000 00000000 00000000 00000101 是 -5的 原码。

(2)反码:正数的反码与原码相同;

负数的反码为对该数的原码除符号位外各位取反。

比如:

正数00000000 00000000 00000000 00000101 的反码还是 00000000 00000000 00000000 00000101

负数10000000 00000000 00000000 00000101每一位取反(除符号位),得11111111 11111111 11111111 11111010。

11111111 11111111 11111111 11111010 是 10000000 00000000 00000000 00000101 的反码。

反码是相互的,所以也可称:

10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互为反码。

(3)补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.

比如:10000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。

那么,补码为:

11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
        所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。
        再举一例,我们来看整数-1在计算机中如何表示。

假设这也是一个int类型,那么:
1、先取-1的原码:10000000 00000000 00000000 00000001

2、得反码:     11111111 11111111 11111111 11111110(除符号位按位取反)

3、得补码:     11111111 11111111 11111111 11111111
       可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF

#include <stdio.h>int main()
{int x = -1;printf("X = %x\n",x);return 0;
}

结果为:X = ffffffff

C语言编码转换----负数的二进制表示方法相关推荐

  1. c语言中二进制用什么字母表示方法,看C语言编码转换--------负数的二进制表示方法...

    今天在看C语言编码转换时,既然对负数的二进制表示有些遗忘,查了下网上的资料,他们说的是个P!误人子弟!和大家讨论了下,贴出来已备在此遗忘: 假设有一个 int 类型的数,值为5,那么,我们知道它在计算 ...

  2. python编程语言转换_Python语言 编码转换与中文处理

    本文主要向大家介绍了Python语言 编码转换与中文处理,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. Python 编码转换与中文处理python 中的 unicode是让人很 ...

  3. 计算机中负数的二进制表达方法

    计算机中表达数值是用二进制编码表示的,但是正数的表示和负数是不一样的. 比如32为int整形数100的编码为00000000000000000000000001100100: 而-100的表示是什么呢 ...

  4. 负数的二进制表示方法

    原文连接:http://blog.sina.com.cn/s/blog_56d8ea900100y65b.html 一:表示法: 1.正数5的表示法 假设有一个 int 类型的数,值为5,那么,我们知 ...

  5. java中负数的二进制表示,【Java基础】15、负数的二进制表示方法

    在计算机中,负数以其正值的补码形式表达. 什么叫补码呢?这得从原码,反码说起. 原码:一个整数,按照绝对值大小转换成的二进制数,称为原码. 比如 00000000 00000000 00000000 ...

  6. 负数的二进制表示方法 (转)

    假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为: 00000000 00000000 00000000 00000101 5转换成二制是101,不过int类型的数占用4字节(3 ...

  7. 网站建设ASP中UTF-8与GB2312编码转换乱码问题的解决方法

    现在blog程序一般都是utf-8编码的,要在网站里加入其它的程序的话,如果不是utf-8而是gb2312的话,在页面转换的时候很容易出现打开的页面时乱码,经过查找资料和测试,总结出现在最好的一个方法 ...

  8. 三个脚编码开关c语言,编码开关的原理及使用方法

    这里附上旋转编码器 EC11的实现原理和C语言代码 https://blog.csdn.net/lovelijiapu/article/details/99584590 旋转编码开关 在电子产品中经常 ...

  9. (易懂)负数的二进制表示方法

    一:表示法: 1.正数5的表示法 假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为: 00000000 00000000 00000000 00000101 5转换成二制是101 ...

最新文章

  1. android 折叠与展开,android – 如何根据滚动方向折叠/展开视图?
  2. 微软Windows 11正式发布!一文带你了解免费升级方法、最低系统要求
  3. windows SOCKET编程
  4. 吉林白山:“五脏俱全”的智能WiFi路灯点亮智慧城市
  5. Take Your Seat Gym - 102222D
  6. 开源|LightGBM:三天内收获GitHub 1000+ 星
  7. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第19篇]Shamir密钥交换场景
  8. 理论基础 —— 排序 —— 快速排序
  9. java如何批量导入题目_MyBatis 如何批量插入?
  10. github快速通道
  11. Enum,Int,String的互相转换 枚举转换
  12. Codeforces 208A:Dubstep(字符串)
  13. 2021中国科学院文献情报中心期刊分区表 计算机(2)
  14. ThoughtWorks的敏捷测试
  15. ad16 导入dwg_AD16怎样精确导入CAD文件
  16. 【中级计量经济学】Lecture 5 自相关
  17. 项目管理师备考笔记:十大管理之范围管理
  18. mipi传输距离3米_弱电网络工程中网线大于100米怎么办?离300米远用什么线缆较好?...
  19. Android原生h5互跳控制,Android原生与H5交互方式
  20. 4. PCIe 接口时序

热门文章

  1. 扩展欧几里得算法 | exgcd 证明 + 板子 + 习题
  2. InputStream (输入流) 与 OutputStream (输出流) 转换
  3. SAP中物料质检过程中检验批/物料凭证/过账变更通知之间的业务关联图
  4. 51单片机——定时器的原理和使用
  5. 词向量经典模型:从word2vec、glove、ELMo到BERT
  6. 安卓使用WebView清除缓存
  7. 关于jsp中java代码的使用;
  8. Scalar类-颜色类
  9. Excel调整行高,鼠标右键直接选中一行进行调整了
  10. HDU - 5761 Rower Bo (非常详细的解答,有轨迹图)