/**
* 二进制 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. NVIDIA Jetson TK1 开发板

    TEGRA K1 — 全球的移动处理器 创新的全新 Tegra K1 处理器包含 NVIDIA Kepler™ 架构 GPU,与全球强超级计算机和 PC 游戏系统所采用的 GPU 无异.这种 GPU ...

  2. docker初学

    Docker基础知识 1. Docker基础知识点 1.1 什么是Docker Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.(集装箱原理) 1.2 什 ...

  3. Zen Coding – 超快地写网页代码(注:已更名为Emmet)

    这篇博客能帮助快速上手这款插件,极大地提高开发效率废话不多说直接上例子 zen codeing的缩写规则 E 元素名 (div, p); 实例:(输入完<按快捷键ctrl+E>就会显示) ...

  4. 【串线篇】Mybatis缓存简介

    缓存:暂时的存储一些数据:加快系统的查询速度... CPU: 主频:4-2.7GHZ 内存:4G-8G    1333MHZ    2166MHZ CPU:一级缓存(4MB):二级缓存 (16MB); ...

  5. AGC002[BCDEF]题解

    F是计数于是就做(kan ti jie)了= = B - Box and Ball 模拟一下 每个盒子开一个d表示有的球数 可能存在红球的打个标记 传递一下就行了 #include<cstdio ...

  6. 在项目中使用 Maven 私服

    #在项目中使用 Maven 私服 在 Maven settings.xml 中添加 Nexus 认证信息(servers 节点下): <server> <id>nexus-re ...

  7. vue.js 导出JSON

    cnpm install file-saver --save <template> <div class="hello"> <button @clic ...

  8. 一次OOM测试并分析

    堆dump文件分析 Java代码: public class HeapTest2 { static class OOMObject { private byte[] arrs = new byte[6 ...

  9. php ucfirst()函数 语法

    php ucfirst()函数 语法 作用:字符串首字母大写 语法:ucfirst(string) 参数: 参数 描述 string 必须,规定要转换的字符串 说明:把字符串中的首字符转换为大写.直线 ...

  10. 4412 PWM

    一.PWM原理 1.有源蜂鸣器和无源蜂鸣器的概念 有源蜂鸣器高电平就响,无源蜂鸣器需要PWM波才响. 2.PWM脉冲波 PWM = 定时器 + 定时器中断(重载) + IO输出(翻转) 3.分析原理图 ...