黑马程序员——C语言进制和字符串

本文详细介绍了二进制、八进制和十六进制的概念及其转换方法,并深入探讨了计算机中变量的内存存储细节,包括内存寻址方向、变量地址排列方式及数值的二进制表示方法等。此外,还介绍了位运算的基础知识,如与运算、或运算、异或运算等,并通过实例演示如何使用异或运算实现变量值的交换。
------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,则结束记数)
根据原作 https://pan.quark.cn/s/0ed355622f0f 的源码改编 野火IM解决方案 野火IM是专业级即时通讯实时音视频整体解决方案,由北京野火无限网络科技有限公司维护支持。 主要特性有:私有部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好,方便与第三方系统对接或者嵌入现有系统中。 详细情况请参考在线文档。 主要包括一下项目: 野火IM Vue Electron Demo,演示如何将野火IM的能力集成到Vue Electron项目。 前置说明 本项目所使用的是需要付费的,价格请参考费用详情 支持试用,具体请看试用说明 本项目默认只能连接到官方服务,购买或申请试用之后,替换,即可连到自行部署的服务 分支说明 :基于开发,是未来的开发重心 :基于开发,进入维护模式,不再开发新功能,鉴于已经终止支持且不再维护,建议客户升级到版本 环境依赖 mac系统 最新版本的Xcode nodejs v18.19.0 npm v10.2.3 python 2.7.x git npm install -g node-gyp@8.3.0 windows系统 nodejs v18.19.0 python 2.7.x git npm 6.14.15 npm install --global --vs2019 --production windows-build-tools 本步安装windows开发环境的安装内容较多,如果网络情况不好可能需要等较长时间,选择早上网络较好时安装是个好的选择 或参考手动安装 windows-build-tools进行安装 npm install -g node-gyp@8.3.0 linux系统 nodej...
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值