C语言存数据

原码

数据的表现形式有三种:原码、反码、补码
计算机存储数据是用补码进行存储的,但是我们看书的数据通常是原码
我们以 1 个字节为例,讲解原理
对于原码,分为有符号数据和无符号数据

无符号数:15
原码表示:0000 1111

有符号数:+15
原码表示:0000 1111
-15
1000 1111
最高位表示符号位,0 为正,1 为负

反码

反码是用于由原码求补码或者由补码求原码的过渡码

无符号数:反码 = 原码
有符号数:+15 反码 = 原码
原码:0000 1111
反码:0000 1111
-15 反码 = 原码符号位不变,其余数据位取反
原码:1000 1111
反码:1111 0000

补码

在计算机系统中,数值一律用补码来存储

无符号数:补码 = 反码 = 原码
有符号数:+15 补码 = 反码 = 原码
原码:0000 1111
反码:0000 1111
补码:0000 1111
-15 补码 = 反码 + 1
原码:1000 1111
反码:1111 0000
补码:1111 0001

你可能感兴趣的:(C\C++学习,c语言,开发语言)