1、什么是原码、反码、补码?
原码:原码是最直接的表示方法,其中最高位表示符号位(0表示正数,1表示负数),其余位表示数值的绝对值。例如,+5的原码是00000101,-5的原码是10000101。原码的优点是表示直观,但在进行加法和减法运算时存在问题。
反码:为了解决原码的加法和减法问题,引入了反码表示。在反码中,正数的反码与其原码相同,负数的反码是将其原码的每位取反(0变1,1变0)。例如,+5的反码是00000101,-5的反码是11111010。尽管反码解决了加法问题,但仍然存在溢出和零的表示问题。
补码:为了彻底解决加法和表示问题,引入了补码表示。在补码中,正数的补码与其原码相同,负数的补码是将其原码的每位取反后再加1。例如,+5的补码是00000101,-5的补码是11111011。补码表示的优势在于它允许用相同的方式处理正数和负数,以及能够在数字的范围内进行循环运算,而无需额外的处理。因此,在大多数计算机体系结构中,补码表示被广泛采用用于带符号整数的表示和运算。
2、为什么要有这几个?
原码、反码、补码的存在是为了解决计算机做减法和引入符号位的问题。
原码、反码、补码是计算机内部表示和处理数值的方法,它们的存在主要是为了解决计算机在处理带有符号的数值运算时的特殊需求。这些表示方法各有特点,但它们共同的目标是为了简化计算机内部电路的设计和运算过程。
3、原码、反码、补码之间的转换关系
C语言中三类标识符
一.关键字:
1.auto
2.break
3.case
4.char
5.const
6.continue
7.default
9.double
10.else
11.enum
12.extern
13.float
14.for
15.goto
16.if
17.int
18.long
19.register
20.return
21.short
22.singned
23.sizeof
24.static
25.struct
26.switch
27.typedef
28.union
29.unsigned
30.void
31.volatile
32.while
二.系统预定义的标识符:如系统提供的库函数名sin printf main及预编译命令define include等;
三.用户标识符:用户定义的标识符,用来给程序中的变量,自定义函数,符号常量,数组 ,结构体,共用体,文件等命名。