两个数的交换

1.引入第三者。

2.求和运算,求差。(这样会产生内存溢出)

3.异或运算

    a = a^b;
b = a^b;
a = a^b;
    8b(bit位) = 1B(Byte=字节)//最小单位是字节

32位机:2^32 = 4G寻址能力

(王爽--统一编址,汇编语言)

char类型一个字节,8位。[-128,127],2^8=256种,

why?[-128,127];深层的编码采用补码,1,表示负数。

正常的:

    0000 0000    1
0000 0001 2
0111 1111 127 ...
1000 0000 -0 ...
1111 1111 -127

这样1+-1=-2;

补码规则:

    0000 0000    0
0000 0001 1
0111 1111 127 ...
1000 0000 -128
-127 ...
1111 1111 -1

计算机只会做加法,1+-1=0;0000 0001 + 1111 1111= 0000 0000;高位溢出得0;

#include<stdio.h>
int main() {
char a = 0;
disBin(a);
char b = 1;
disBin(b);
char c = 2;
disBin(c);
char d = 127;
disBin(d);
char e = -128;
disBin(e);
char f = -2;
disBin(f);
char g = -1;
disBin(g);
} //打印一个数的二进制
void disBin(char ch) {
int i = 8;
while(i--) {
if((1<<i) & ch) {
printf("1");
}else {
printf("0");
}
if(i%4 == 0) {
printf(" ");
}
}
putchar(10);
}

补码的出现所有的乘法,除法,减法,都用减法实现。

补码的规则:(运算互为逆运算)

所有的整数的补码是他本身,所有的负数,取绝对值后取反,加一。

逆过程的运算,最高位是1,是负数。全部参与运算取反加一。

0的补码是0;

补码的运算相当于12进制的时钟,其中顺时针为正,逆时针为负。例如:当前时钟在3点,要点到8点。可以顺时针一可以逆时针。3+5=8,(3+12)-7=8;中的12溢出,在这之中相加互为12的称之为“补数”。

计算机中的所有减法,乘法,除法都可有加法计算。

1-2=1+(-2),也就是相当于1加上-2的补码。

注意:一个8位的空间,如果用来表示无符号数0-255(0-28-1),如果表示有符号的数:-128-127(-27-2^7-1)。

sizeof();

sizeof(char);//1字节
sizeof(short);//2字节
sizeof(int);//4字节
sizeof(long);//4字节
sizeof(long long);//8字节
1字节 char
0 - 255 unsigned char(无符号) 0 -2^8-1
-128 - 127 signed char -2^7 -2^7-1
2字节 short
0 - 65535 0 - 2^16-1
-32768 - 32767 -2^15 - 2^15-1
4字节 int
0 - 2^32(40亿)
-2^31 - 2^31-1
long(4个字节)没有扩展,
long long(8个字节)。
0 - 2^64
-2^62 - 2^63-1

int 基本整型 理想的32位机,地址总线和数据总线都是32位的。

有效数字,从左至右不为0的数字。超出类型的限制之后的数字不保证正确。

float,doouble;

数据类型图:

C/C++(基础编码-补码详解)的更多相关文章

  1. (转)总结之:CentOS 6.5 MySQL数据库的基础以及深入详解

    总结之:CentOS 6.5 MySQL数据库的基础以及深入详解 原文:http://tanxw.blog.51cto.com/4309543/1395539 前言 早期MySQL AB公司在2009 ...

  2. 基础拾遗------redis详解

    基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗----- ...

  3. 基础拾遗------webservice详解

    基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗----- ...

  4. Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例)

    Hadoop基础-Idea打包详解之手动添加依赖(SequenceFile的压缩编解码器案例) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编辑配置文件(pml.xml)(我 ...

  5. python基础之函数详解

    Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...

  6. java基础之:详解内部类(转载)

    可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 第一次见面 内部类我们从外面 ...

  7. python 3.x 爬虫基础---http headers详解

    前言 上一篇文章 python 爬虫入门案例----爬取某站上海租房图片 中有对headers的讲解,可能是对爬虫了解的不够深刻,所以老觉得这是一项特别简单的技术,也可能是简单所以网上对爬虫系统的文档 ...

  8. 深度学习基础(CNN详解以及训练过程1)

    深度学习是一个框架,包含多个重要算法: Convolutional Neural Networks(CNN)卷积神经网络 AutoEncoder自动编码器 Sparse Coding稀疏编码 Rest ...

  9. 基础知识redis详解--【Foam番茄】

    Redis 学习方式: 上手就用 基本的理论先学习,然后将知识融汇贯通 nosql讲解 为什么要用Nosql 现在都是大数据时代 大数据一般的数据库无法进行分析处理了 至少要会Springboot+S ...

随机推荐

  1. caffe(13) 数据可视化(python接口)配置

    caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较 ...

  2. 用树链剖分来写LCA

    当两个点在一条链上,它们的LCA就是深度较小的那个点. 于是这种树链剖分写LCA的思想就是把要求的两个点想办法靠到一条链上. 而且要靠到尽量更优的一条链上(重链). 做法: 预处理出每棵树上的重链(s ...

  3. poj 3613 Cow Relays(矩阵的图论意义)

    题解 用一个矩阵来表示一个图的边的存在性,即矩阵C[i,j]=1表示有一条从i到j的有向边C[i,j]=0表示没有从i到j的边.这个矩阵的k次方后C[i,j]就表示有多少条从i到j恰好经过k条边的路径 ...

  4. iotop---监控磁盘I/O 使用状况

    iotop命令是一个用来监视磁盘I/O使用状况的top类工具.iotop具有与top相似的UI,其中包括PID.用户.I/O.进程等相关信息.Linux下的IO统计工具如iostat,nmon等大多数 ...

  5. 一个Web报表项目的性能分析和优化实践(一):小试牛刀,统一显示SQL语句执行时间

    最近,在开发和优化一个报表型的Web项目,底层是Hibernate和MySQL. 当报表数据量大的时候,一个图表要花4秒以上的时间. 以下是我的分析和体会.  1.我首先需要知道哪些函数执行了多少时间 ...

  6. 09-breack语句

  7. Spring可扩展Schema标签

    基于Spring可扩展Schema提供自己定义配置支持 http://blog.csdn.net/cutesource/article/details/5864562 WARN : org.sprin ...

  8. 离散化求RECT1

    本文转载至点击打开链接 #include<stdio.h> struct node{ int x1,y1,x2,y2,c; }; struct node s[1010]; int px[2 ...

  9. 6.控制器(ng-Controller)

    转自:https://www.cnblogs.com/best/tag/Angular/ ngController指令给视图添加一个控制器,控制器之间可以嵌套,内层控制器可以使用外层控制器的对象,但反 ...

  10. 《Linux企业应用案例精解》一书已由清华大学出版社出版

    <Linux企业应用案例精解>简介 650) this.width=650;" border="0" alt="223754878.jpg" ...