两个数的交换

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. fill,fill-n,memset的区别

    这里在网上搜集归纳了一个总结 memset函数 按照字节填充某字符 在头文件<string.h>中 因为memset函数按照字节填充,所以一般memset只能用来填充char型数组,(因为 ...

  2. Python 批处理文本文件、进行查找

    去年换了一部手机,老手机终于光荣退休了,但是里面的便签里还存有很多文字记录,这个手机还不能备份到云,只能将每个便签保留为一个个的文本文件,我想要把所有的文本文件归到一个文本文件中,手动操作太麻烦了,刚 ...

  3. [Code+#4]最短路 (最短路)

    [Code+#4]最短路 题目背景 在北纬 91° ,有一个神奇的国度,叫做企鹅国.这里的企鹅也有自己发达的文明,称为企鹅文明.因为企鹅只有黑白两种颜色,所以他们的数学也是以二进制为基础发展的. 比如 ...

  4. Object-C,遍历目录

    最近武汉连续下雨很多天,降温了2次,温度一下子由28度到14度,再到8度,手太冷了. 加上最近发生了一些比较棘手的家庭琐事,最近没心情继续学习Object-C. 后来,我想明白了,心情不好的时候,还是 ...

  5. JDBC连接SQL Server 2005 报错Connection refused: connect

    com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败.错误:“Connect ...

  6. POJ——T 1988 Cube Stacking

    http://poj.org/problem?id=1988 Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 25865   ...

  7. 洛谷 P1769 淘汰赛制_NOI导刊2010提高(01)

    P1769 淘汰赛制_NOI导刊2010提高(01) 题目描述 淘汰赛制是一种极其残酷的比赛制度.2n名选手分别标号1,2,3,…,2^n-1,2^n,他们将要参加n轮的激烈角逐.每一轮中,将所有参加 ...

  8. jsp静态引入(<%@ include file=""%>) 乱码问题

    在web.xml中的web-app中加入这段话: <jsp-config> <jsp-property-group> <display-name>JSPConfig ...

  9. github关联域名,创建个人站点教程终结篇

    1.背景 近期心血来潮,买了一个域名,本来要买fuckgfw的,没想到被抢注了.就拿自己的英文名买了一个.叫做www.garvinli.com.由于知道会有非常多朋友不太清楚整个站点搭建的过程,所以在 ...

  10. STL使用————SET&MULTISET

    SET函数的基本用法 by hhl 使用set的好处 1. 当增加元素后,集合会自动删重并从小到大排列(时间比快排还快)2. 相当于一棵伸展树(能快速求出后继) 使用基础 #include<se ...