c语言基础系列-原码 反码 补码10
来源:互联网 发布:js求字符串字节长度 编辑:程序博客网 时间:2024/06/01 09:08
1.无论任何数据,在内存中存储的时候都是以二进制的形式存储的.
int num = 10;
原码、反码、补码都是二进制.只不过是二进制的不同的表现形式.
数据是以补码的二进制存储的.
2. 1个int类型的变量.在内存中占据4个字节, 32位.
00000000 00000000 00000000 00000000
在不考虑正负的情况下.1个int类型的变量可以表示接近43e种数据.
为了可以表示正负性.使用最高为来表示这个数的正负性.
如果最高为是0 那么表示这个数是1个正数
如果最高为是1 那么表示这个数是1个负数.
所以,来表示数据的只有31位.所以,1个int类型的变量.
最小值是: -2147483648 最大值是:2147483647
3. 原码:
最高位表示符号位. 剩下的位数.是这个数的绝对值的二进制.
10的原码.
00000000 00000000 00000000 00001010
-8的原码.
10000000 00000000 00000000 00001000
绝对值: 正数的绝对值是自己,负数的绝对值去掉负号.
-20.
10000000 00000000 00000000 00010100
3. 反码:
正数的反码就是其原码.
负数的反码就是在其原码的基础之上 符号位不变,其他位取反.
10的反码:
10的原码:00000000 00000000 00000000 00001010
10的反码:00000000 00000000 00000000 00001010
-8
-8的原码:10000000 00000000 00000000 00001000
-8的反码:11111111 11111111 11111111 11110111
4. 补码:
正数的补码就是其原码.
负数的补码就是在其反码的基础之上+1
10.
10的原码:00000000 00000000 00000000 00001010
10的反码:00000000 00000000 00000000 00001010
10的补码:00000000 00000000 00000000 00001010
-8
-8的原码:10000000 00000000 00000000 00001000
-8的反码:11111111 11111111 11111111 11110111
-8的补码:11111111 11111111 11111111 11111000
5.任何数据都是以其二进制的补码形式存储在内存中的.
int num = -8;
6.为什么数据要以补码的形式存储呢?
因为计算机中只有加法没有减法.为了更加低成本的计算出结果,所以使用补码来存储数据.
3 + 2;
3 - 2;这个减法运算对于计算机而言它的理解是 3 + (-2); 1
使用原码计算.
3的原码 00000000 00000000 00000000 00000011
-2的原码 10000000 00000000 00000000 00000010
----------------------------------------------------
10000000 00000000 00000000 00000101结果是1个负数明显是不对的
使用反码计算.
3的反码: 00000000 00000000 00000000 00000011
-2的反码: 11111111 11111111 11111111 11111101
--------------------------------------------------
00000000 00000000 00000000 00000000 0
使用补码计算
3的补码: 00000000 00000000 00000000 00000011
-2的补码: 11111111 11111111 11111111 11111110
-------------------------------------------------
00000000 00000000 00000000 00000001 1
因为使用补码来做运算效率是最高的.
- c语言基础系列-原码 反码 补码10
- C语言基础之《原码,反码,补码》
- C语言基础-----进制转换,原码反码补码
- C语言基础 原码 反码 补码 移码简介
- C 语言 - 整型 原码,反码,补码
- C语言原码、反码、补码
- C语言(四):原码、反码、补码
- 原码反码补码基础
- 原码反码补码基础
- [基础]原码反码补码
- C 【原码 反码 补码】
- C语言-数据类型(原码、反码、补码)
- c语言原码,补码,反码你们不在意的由来
- C语言 八进制 16进制 原码 反码 补码 按位取反
- C语言的原码,反码和补码
- C语言之位运算/原码/反码/补码
- c语言的原码补码反码-位运算
- 小朋友学C语言(35):原码、反码、补码
- 慕课网实战项目《WebAPP书城整站开发》笔记六:字体面板中“背景”切换的交互开发
- c语言基础-进制09
- c# 登录界面设计与框架基础搭建雏形--(学生管理系统)
- javabean
- Lisp 语言中 split 的实现方法与效率
- c语言基础系列-原码 反码 补码10
- 代码开源 | COCO-16 图像分割冠军:首个全卷积端到端实例分割模型(HR)
- c语言基础-位运算11
- 推荐Github星级Top10的深度学习项目
- 如何在论文中交代“研究方法”
- TensorFlow,Tensor,Flow(HR)
- 每天学一点Swift----面向对象上(一)
- C++搜索与回溯算法之迷宫问题
- Mac下的Ruby版本升级