C语言中负数的存储

C语言中负数是以补码的形式进行存储的。

示例:负数-1, (此处,假设是8位二进制表示)
对应正数的原码:0000 0001;
取反: 1111 1110;
加1: 1111 1111;
最终,-1是以1111 1111的形式进行存储的。

理论知识
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。

  1. 正整数的补码是其二进制表示,与原码相同;
  2. 求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1;

猜你喜欢

转载自blog.csdn.net/u010603798/article/details/78962666