/**
* 二进制 binary 如: 1010
* 八进制 octal 如: 070
* 十六进制 hexadecimal 如: 0x7f
*
* 1Byte = 8bits
* 1WORD = 2Bytes = 16bits "字"
* 2WORD = 4Bytes = 32bits = 1DWORD "双字"
*
* 原码, 反码和补码
* 二进制原码中, 第一位代表符号位, 1为负(negative), 0为正(positive)
* 正数: 原码 = 反码 = 补码
* 负数: 反码 = 原码除符号位外, 其他各位按位取反
* 补码 = 反码 + 1
* 计算机中数字是按补码进行存储的
*/
#include <stdio.h> int main() {
int a = 11;
// 输出变量a的十进制, 八进制, 十六进制结果
printf("变量a的十进制为 %d, 八进制为 %o, 十六进制为 %x\n", a, a, a); // 变量a的十进制为 11, 八进制为 13, 十六进制为 b int b = 11;
// 输出变量b的原码, 反码和补码
printf("变量b的值为 %d, 原码为 0000 1101, 反码为 0000 1101, 补码为 0000 1101\n", b); // 变量b的值为 11, 原码为 0000 1101, 反码为 0000 1101, 补码为 0000 1101 // 输出变量c的原码, 反码和补码
int c = -11;
printf("变量c的值为 %d, 原码为 1000 1101, 反码为 1111 0010, 补码为 1111 0011\n", c); // 变量c的值为 -11, 原码为 1000 1101, 反码为 1111 0010, 补码为 1111 0011 int d = -1;
// 输出变量d的原码, 反码和补码
printf("变量d的值为 %d, 原码为 1000 0000 0000 0000 0000 0000 0000 0001, 反码为 1111 1111 1111 1111 1111 1111 1111 1110, 补码为 1111 1111 1111 1111 1111 1111 1111 1111\n", d);
// 以上输出: 变量d的值为 -1, 原码为 1000 0000 0000 0000 0000 0000 0000 0001, 反码为 1111 1111 1111 1111 1111 1111 1111 1110, 补码为 1111 1111 1111 1111 1111 1111 1111 1111
// 输出变量d的无符号整数, 实际输出的是d的补码的十进制数 4294967295
printf("变量d的值为 %d, 无符号整数为 %u\n", d, d); // 变量d的值为 -1, 无符号整数为 4294967295 int e = 100;
// 输出变量e在内存中占的字节数
printf("整型变量e的值为 %d, 在内存中占 %d 个字节\n", e, sizeof(e)); // 整型变量e的值为 100, 在内存中占 4 个字节 return 0;
}

C中进制, 原码, 反码与补码的简单用法的更多相关文章

  1. [转]C语言的int最值问题,以及原码反码及补码

    以2字节为例来说: 对于无符号的数值(原码反码及补码都一样),最大值为1111  1111  1111  1111=65535 最小值为0000  0000  0000  0000=0 对于有符号的来 ...

  2. java 原码反码及补码 总结

    参考: http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html http://blog.csdn.net/lius ...

  3. 原码 & 反码 & 补码 & 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  4. Java 原码 反码 补码

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  5. 位移&二进制转换&原码&反码&补码

    << 左移 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零. 格式 需要移位的数字 << 移位的次数 计算过程 1. 按二进制形式把所有的数字向左 ...

  6. C语言学习笔记之原码反码补码

    原码:就是我们自己看的,以及机器输出给我们看的 补码:机器永远是以补码的形式将数据保存在计算机中 正数: 原码=反码=补码 负数: 反码:原码的符号位不变,其他位取反 ,1变0   0变1 补码:机器 ...

  7. python3笔记二:进制转换与原码反码补码

    一:学习内容 进制:二进制.八进制.十进制.十六进制 进制转换 原码.反码.补码 二:进制 二进制 1.二进制:只有0和1,逢2进1 2.举例:0+0=0.0+1=1.1+1=10 3.过程剖析:二进 ...

  8. python之计算机硬件基本认知_数据单位_进制间转换_数的原码反码补码

    一:计算机硬件基本认知 cpu:   中央处理器.   相当于人的大脑.运算中心,控制中心. 内存:  临时存储数据. 优点:读取速度快,缺点:容量小,造价高,断电即消失. 硬盘:  长期存储数据. ...

  9. 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)

    标识符.变量.数据类型.类型转换.进制转换.原码反码补码 标识符: java50个关键字不能做标识符,以数字开头不能做标识符(这个老是忘记写一个类名的时候) 变量: 变量分为成员变量和局部变量,注意作 ...

随机推荐

  1. C语言文件读写操作

    C语言实现文件读写,注意区分几个方法: 写入: fwrite() //个人认为这个最好,可是实现写入任何数据类型,任何长度 fputs() //写入一个字符串,字符串长度不能太长,具体的长度未知,但估 ...

  2. spring boot 不连接数据库启动

    Consider the following:    If you want an embedded database (H2, HSQL or Derby), please put it on th ...

  3. xblock架构,链接与加载

    首先,xblock是一个模块,edx即edx-platform,在github.com/edx/edx-platform中,此平台有一个专门加载xblock的模块,定义了所有的接口,可以逐一将模块中的 ...

  4. Android自动化测试框架UIAutomator原理浅析

    UIAutomator是一个Android自动化测试框架,是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架,它只能用于UI即黑盒方面的测试.所以UIAutomator只能运 ...

  5. SpringMvc Filter的使用

    一:Filter过滤器. 先自定义一个过滤器. package com.jbj.filter; import org.springframework.web.filter.OncePerRequest ...

  6. BZOJ 4883 棋盘上的守卫 解题报告

    BZOJ4883 棋盘上的守卫 考虑费用流,但是数据范围太大 考虑 \(i\) 行 \(j\) 列如果被选择,那么要么给 \(i\) 行,要么给 \(j\) 列 把选择 \(i\) 行 \(j\) 列 ...

  7. create-react-app 配置 修改

    1.端口号修改:https://www.jianshu.com/p/80a7603dda70(亲测有效)   在 根据 package.json 的启动,node_modules文件夹里面搜索reac ...

  8. python数据分析中常用的库

    Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具,需要的朋友可以参考下 Pyth ...

  9. Spring中Configuration的理解

    基本用途从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigAp ...

  10. 2018-2019-2 网络对抗技术 20165206 Exp 9 Web安全基础

    - 2018-2019-2 网络对抗技术 20165206 Exp 9 Web安全基础 - 实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,C ...