C语言中负数的存储方式
详细介绍负数的文章:
https://blog.csdn.net/daiyutage/article/details/8575248
1.以char类型举例,其取值范围是 -128 ~ 127,即-2E7 ~ 2E7-1, 用最高位表示其符号,0表示正数,1表示负数。数值以补码形式存储。正数的补码就是该正数本身,负数的补码需要转化,如下:
1>.对负数取绝对值,用二进制表示
2>. 对每一位取反;
3>. 对该数加1。
注意:char类型的0 没有+0 和 -0 的区分,即使想区分,按照上述操作,得到的都是 0000 0000
举例:-1 取绝对值0000 0001 -> 取反1111 1110 ->加1得到 1111 1111
下面是一些数值的补码格式:
-128 存储数值 1000 0000
-127 存储数值 1000 0001
-126 存储数值 1000 0010
.....
-3 存储数值 1111 1101
-2 存储数值 1111 1110
-1 存储数值 1111 1111
0 存储数值 0000 0000
1 存储数值 0000 0001
2 存储数值 0000 0010
3 存储数值 0000 0011
...
125 存储数值 0111 1101
126 存储数值 0111 1110
127 存储数值 0111 1111
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)