c/c++:2进制、8进制、10进制、16进制和进制之间的转换,c语言输出匹配格式%
2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c++的话,
我所知道的周边的会c++的同学,可手握10多个offer,随心所欲,而找啥算法岗的,基本gg
提示:系列c++学习的基础和高阶知识,用于公司生产实践中,实实在在的公司部署产品要用的,因为c++速度快,
而java和Python速度慢,自然往硬件里面部署算法啥的,都得用c++或者c,因此本科学的c很重要,后来的Python或者java就没有那么重要了,
c/c++系列文章:
【1】c++:c语言优缺点,visual studio2019如何新建项目,写hello world程序
【2】c/c++:gcc安装,gcc编译hello world文件,system函数调用系统命令,sleep函数
【3】linux下gcc的编译过程和功能,预处理,编译,汇编,链接,.c预处理为.i文件.s文件.o文件.exe文件
【4】c/c++:windows平台下依赖的动态库,c底层是汇编语言,程序断点调试,反汇编,vs快捷键
【5】c/c++:数据类型,常量变量,标识符,有符号整型,无符号unsigned,字符类型,字符串类型,实数类型,浮点型,科学计数法
进制
d进制数
d进制【d=10】
1=1×10的0次方
10=0×10的0次方+1×10的1次方
100=0×10的0次方+0×10的1次方+1×10的2次方
1000=0×10的0次方+0×10的1次方+0×10的2次方+1×10的3次方
数的值=各个位上的权*d的几次方【位次】
比如:
11
1×10的0次方+1×10的1次方=11
111
1×10的0次方+1×10的1次方+1×10的2次方=111
同理d=2时,2进制,计算机用
d进制【d=2】
1=1×2的0次方
10=0×2的0次方+1×2的1次方
100=0×2的0次方+0×2的1次方+1×2的2次方
1000=0×2的0次方+0×2的1次方+0×2的2次方+1×2的3次方
数的值=各个位上的权*d的几次方【位次】
8421
1000=8
1001=9
1010=10
懂?
00=0
01=1
10=2
11=3
100=4
101=5
101=5
110=6
111=7
1000=8
人类有10根手指头,所以用10进制数
那10进制数如何写入计算机?
4字节高位–低位分别用16进制写
本质上2进制数
56=163+81+40+20+1*0
也就是00111000
4位二进制表示1个16进制数
所以呢就是38H
如果是4个字节
那就是32位表示一个数
0038H
高位放高地址
低位放低地址
十进制转二进制数:除2取余法
好说
除2取余法,最后反向列出来
当商为0时,停止
你用计算器验证一波就知道了
2进制转10进制
d进制数,上面说过了
数的值=各个位上的权*d的几次方【位次】
这很简单
1024 512 256 128 64 32 16 8 4 2 1
10101101
分别用各个权对应相乘相加
就得了10进制数了
懂了吧?easy
小数点后的二进制是乘2取整
3位二进制数就是8进制
也是421这种权重
对应权,就是二进制
比如7,实际就是111
对应4+2+1
二进制转8进制,就是3位一组,转为8进制数即可
从尾部3个一组哦
前面不够补0
懂?
4位二进制数就是16进制
16进制0–15
0–9ABCDEF表示
16进制转10进制
16进制转2进制
用4位二进制表示一个16进制凑即可
8421码算一个16进制数
2进制转16进制,很简单,4位组合即可
使用频率最高的10进制
还有就是16进制,范围大一些
2进制太繁杂了
打印格式:
%d十进制
%o八进制
%x十六进制
没有二进制的匹配格式哦
void f10(void)
{
int m = 0x15F4;//16进制可以赋值
int n = 10;//10进制可以赋值
int p = 010110;//2进制不可以赋值
printf("十六进制m=%x\n", m);
printf("十进制m=%d\n", m);
printf("八进制m=%o\n", m);
printf("二进制m=%b\n", m);
}
懂了吧
0x1F这种,最多
大小写都可以哦
个上匹配的格式很多了已经。
%c字符
%f浮点型
%lf双精度
%d十进制
%hd短整型short
%ld long
%lld longlong
%u无符号整型
%hu
%lu
%llu
%s表示字符串
用的也很多
基本就这些咯
总结
提示:重要经验:
1)
2)学好c++,即使经济寒冬,手握10个大厂offer绝对不是问题!
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。