黑马程序员——C语言进制和字符串
来源:互联网 发布:开淘宝c店 编辑:程序博客网 时间:2024/05/01 07:49
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.进制问题:
二进制:0B 开头 eg:0B11 代表11的二进制
八进制:0开头 eg:011 代表11的八进制
十六进制:0x开头 eg: 0x11 代表11的十六进制
2.变量内存存储细节
内存寻址:地址从大到小(例如从ffc9开始给变量分配地址,一直到ffc1)。
变量地址:地址从小到大(ffc2是变量number2的地址,ffc6是变量number的地址)。
.03相当于0.03
3.进制问题:
n位二进制取值范围:2的n次方减1
二进制表示负数问题(正数的补码与原码完全相同,负数的补码是其反码加1):
整数:最高位为0
负数:最高位为1(首先将正数二进制取反码,然后再加1为补码,则补码就为此正数的负数);
eg:5的二进制为0000 0101 反码为1111 1010 补码为1111 1011 则此代表-5
具体看出负几:1111 1011:首先减1为 1111 1010 然后取反为 0000 0101 则代表-5 (减一取反)
4.位运算
与运算:相同为1,不同为0 (可以通过此方法获取某个位的数值。eg:与1,如果结果为1,则该位为1,否则为0)
或运算:有1则为1,否则为0
异或:^ 相同为0,不同为1(多个异或时,顺序可以交换;任何值与0异或都为本身)
按位取反:~ 将二进制所有位取反 (eg:0000 1010 按位取反为 1111 0101)
左移:<< 将二进制数左移,高位丢弃,低位补0(左移n位,结果为该数值乘2的n次方)
右移:>> 高位补0,低位丢弃(结果为该数值除以2的n次方 如果是负数,则最高位补1)
eg:使用异或运算交换两变量值:
int c=9,a=1;
a=c^a;
c=c^a;
a=c^a;
printf("%d,%d\n",a,c);
5.单引号'' 和双引号""区别:
'' :单引号只能扩住单字节的字符(ASCII表中都是单字节)
"" :双引号扩住的是字符串
6.字符串问题
定义:字符串由字符数组组成;
字符数组和字符串区别:
字符串一定以\0为结束符
eg:char name[10]="jack";(此字符串占有5个字节,由j a c k \0 共5个元素组成)
在内存中存储时,首先转化为字符,然后字符根据ASCII码形式在内存中存储。
指针字符串,指向的地址是首字符:
eg: char *name="it";//name指针指向的是i的地址
注:\0后面加数字,他们会结合一起,\00也是。
7.记数问题:
sizeof:计算所占内存。
strlen:计算字符串长度(计算的是字符数,不包括\0。如果遇到\0,则结束记数)
0 0
- 黑马程序员——C语言进制和字符串
- 黑马程序员——C语言基础--数组和字符串
- 黑马程序员—C语言笔记—数组和字符串
- 黑马程序员——c语言基础:数组和字符串
- 黑马程序员------C语言-----数组和字符串
- 黑马程序员---c语言 数组和字符串
- 黑马程序员——C语言------数组和字符串数组、字符串
- 黑马程序员—C语言—数组 && 字符串
- 黑马程序员——c语言基础:字符串
- 黑马程序员——ios基础---C语言:字符串、指针
- 黑马程序员——C语言之字符串指针
- 黑马程序员——C语言基础---字符串
- 黑马程序员——C语言常用字符串函数
- 黑马程序员—C语言_数组、字符串
- 黑马程序员---c语言字符串
- 【黑马程序员】C语言字符串
- 黑马程序员——C语言基础——数组和字符串
- ——黑马程序员——C语言中二维数组、字符数组和字符串
- 黑马程序员——C语言数据类型总结
- mybatis 根据数组批量删除
- PE文件结构(二) 区块,文件偏移与RVA转换
- CryptGenRandom windows下生成随机数的函数使用
- Mysql安全基础篇学习笔记
- 黑马程序员——C语言进制和字符串
- mybatis表关联查询
- 《魔鬼搭讪学》读书笔记
- switch语句格式
- 采用Spring注解方式, 实现事务
- 关于break语句与goto语句的区分
- win7安装nodejs失败(node.js setup wizard ended prematurely)
- struts2简介
- 解决控制台输入乱码,用Scanner输入时输入汉字,但是软件读入时出现乱码