两个数的交换

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;

数据类型图:

最新文章

  1. MySQL Cluster 数据分布(分区、分组)
  2. *HDU1325 并查集
  3. GTD
  4. php计算几分钟前、几小时前等
  5. Cfree
  6. 修改TrustedInstaller权限文件(无法删除文件)
  7. [Ubuntu] Linux下使用google app engine,无法打开https网站的解决方法
  8. codeigniter框架扩展核心类---实现前台后台视图的分离
  9. 解决fonts.gstatic.com无法访问
  10. Macbook配置adb环境
  11. Node.js内置的工具和第三方模块来进行单步调试
  12. BNUOJ27873:A Special &quot;Happy Birthday&quot; Song!!!
  13. SuperSocket源码解析之配置系统
  14. Android最方便的数据库--LitePal
  15. jmeter之jtl文件解析
  16. 《安卓网络编程》之第一篇 java环境下模拟客户端、服务器端
  17. MUI 图片上传实现
  18. SQL性能优化的几点建议
  19. iOS树状视图(折叠单元格)详细使用
  20. 百度地图JSAPI浏览器定位

热门文章

  1. Linux安装多功能词典GoldenDict
  2. highGUI图形用户界面
  3. Vue总结(二)
  4. 洛谷1414 又是毕业季II
  5. Spring配置方式
  6. Unity 框架(一)
  7. 【SRM 716 DIV 1 A】 ConstructLCS
  8. spring mvc 防止重复提交表单的两种方法,推荐第二种
  9. Windows远程登录Linux
  10. libvirt 部分API 介绍