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

相关推荐
念何架构之路11 小时前
Go语言常见并发模式
开发语言·后端·golang
磊 子12 小时前
多态类原理+四种类型转换+异常处理
开发语言·c++·算法
脆皮炸鸡75512 小时前
库制作与原理~动态链接
linux·开发语言·经验分享·笔记·学习方法
XMYX-012 小时前
26 - Go recover 捕获错误:优雅恢复的真正意义
开发语言·golang
小白学大数据12 小时前
基于大模型的Python智能爬虫:语义识别与数据清洗实践
开发语言·爬虫·python·数据分析
迷渡12 小时前
聊一聊 Bun 用 Rust 重写这件事
开发语言·后端·rust
古怪今人12 小时前
Gradle构建工具 Groovy/Kotlin DSL的现代化自动化构建工具
开发语言·kotlin·自动化
赏金术士12 小时前
Kotlin 协程与挂起函数(Coroutines & suspend)入门到实战
android·开发语言·kotlin
y = xⁿ13 小时前
Java并发八股学习日记
java·开发语言·学习
xifangge202513 小时前
【深度排障】从 OS 底层寻址剖析 javac 不是内部或外部命令 核心报错:变量空间隔离与自动化部署终极范式
java·开发语言·jdk·自动化