A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flairamyz 中级黑马   /  2015-11-6 23:54  /  676 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

进制与内存分析

进制
1.【掌握】进制的基本概念

二进制、八进制、十进制、十六进制:
0b0000 1010/012/10/0x0a

2.进制的用法

%o:无符号八进制整数
%x:无符号十六进制
%d:有符号整型
%u:无符号整型
备注:二进制不可直接输出

3.进制的转换

二进制与十进制转换:0x 0000 1010 -> 10
二进制与八进制转换:0x 0000 1010 -> 000 001 010->012
二进制与十六进制转换:0x 0000 1010 -> 0x0a
八进制、十六进制和十进制互转(先转成二进制)

4.数据的取值范围

int :-2的31次方----2的31次方-1
unsigned int:0-2的32次方-1

5.类型修饰符

类型说明符可以累加,如果省略了基本数据类型,那么基本数据类型是int
unsigned char:0 - 255
char:-128--127
浮点型没有无符号型;
有符号和无符号针对整型;
long可以修饰整型,但不能修饰char
用long来修饰double,long double在64位编译器里占16字节


【掌握】位运算
1.位运算是什么?
直接对整数在内存中的二进制位进行操作的方法(只能操作整型)
2.有什么用?
直接通过操作二进制位来实现运算,比较高效
3.怎么用:按位计算
& :1假为假
| :1真为真
^:
一个数^另一个数两次,结果不变;
整数的^和顺序无关;
一个整数^0为其本身
~:按位取反
~-2 = 3.取反再+1
<<:高位丢弃,包括符号位。低位补0
>>:右移n位,符号位不变,高位空缺补0
高位补0或者1不确定(编译器决定,clang补1)

计算机里,补码 == 反码 == 原码(不是指其表现形式,是指真实的值)
整数的补码,反码,原码的表现形式一样
负数的补码 = 反码+1,反码 = 原码符号位取反,其余取反
取反 = 原数的反值-1

转义字符
\n \t \' \'' \\

内存分析
file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/aafd4525-ceb2-4b92-b499-de16bf4d5194.png
答案:
1.8位,16位
2.从高位取址,分配四个字节的内存空间,低位一个字节为0000 0001,其余高位的七个字节都是0
3.0b,0, ,0x
4.三位,四位
5.看是有符号型还是无符号
6.部分可以。long int ,short int,long double,long long int,char,unsigned char等
7.不能
8.如上
9.对的。输出\
​正确,转为'\'
10.a = 98,c = b
在char的范围内是可以用%c输出int数的
两个整数值的互换:(4种方法)
1.临时变量temp
2.a = a-b,差值
3.a = a^b,^两次一个数等于其本身
4.指针

编程题:
1.
a = a^b;
b = a^b;
a = a^b;
2.判断i & 1 == 0

3.除符号位,整体右移30--0位再&1














0 个回复

您需要登录后才可以回帖 登录 | 加入黑马