吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2222|回复: 32
收起左侧

[学习记录] 从零开始学C语言

  [复制链接]
熊猫拍板砖 发表于 2023-3-22 21:36
本帖最后由 熊猫拍板砖 于 2023-5-9 18:30 编辑

站长发话了,四、学习记录贴请勿短时间发多个主题,可通过编辑或回复进行更新,无法回复编辑可发新帖。
所以C语言的所有更新就在这一个帖子里

[b]0x00 信息的表示和存储(进制转换)

进制说明

计算机常用的存储和处理的进制是二进制、八进制、十进制、十六进制

  • 二进制,计算机主要使用的
  • 八进制,广泛应用与计算机系统
  • 十进制,这个主要是给人类看的
  • 十六进制,主要用于代码中的表示法,汇编中也用的多

因为 MarkDown 不支持公式,所以我们约定在括号后用_2表示进制,_2代表二进制,_8代表8进制,_16代表16进制

十进制

这个不过多介绍,就是我们正常使用的数字,逢10进1

二进制

使用 0,1 来表示
基数:2
二进制就是0和1,逢二进一
例如:(101001)_2+(1)_2=(101010)_2

八进制

使用 0,1,2,3,4,5,6,7 来表示
基数:8
逢八进一
表示法:0开头,比如十进制7,八进制用07
例如:(713)_8+(114)_8=(1027)_8

十六进制

使用 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 来表示
基数:16
逢十六进一
表示法:0x或0X开头,0x10或0X10
例如:(27b)_16+(18a)_16=(405)_16

进制转换

二进制转换成十进制

00101011 转换成十进制是 1*2^0+1*2^1+0*2^2+1*2^3+0*2^4+1*2^5=43
(00101011)_2=(43)_10

八进制转十进制

(745)_8=5*8^0+4*8^1+7*8^2=(485)_10

十六进制转十进制

(a13)_16=3*16^0+1*16^1+a*16^2=(2579)_10

十进制转其它进制

全部用除法除

二进制、八进制、十六进制之间转换

  • 八进制,十六进制之间转换都依赖于二进制
  • 一个八进制位等于三个二进制位
  • 一个十六进制位等于四个二进制位

八进制转二进制

八进制 二进制
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

示例:(456)_8=(100|101|110)_2 在这里,我用| 符号把二进制分成了三个块用来表示八进制位对应的二进制

十六进制转二进制

十六进制 二进制
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
a 1010
b 1011
c 1100
d 1101
e 1110
f 1111

示例:(89f)_16=(1000|1001|1111)_2  和上面一样,用|分割

八进制转十六进制

  • 先八进制转二进制
  • (342)_8=(011|100|010)_2
  • 然后二进制转十六进制
  • (1110|0010)_2=(e2)_16

十六进制转八进制

  • 先十六进制转二进制
  • (6f3)_16=(0110|1111|0011)_2
  • 然后二进制转八进制
  • (011|011|110|011)_2=(3363)_8



参考书:《C Primer Plus》3.3数据:数据类型关键字

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
zhuwaihui + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Huang210 + 1 + 1 可以哦,学到了

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

02131103 发表于 2023-3-22 21:41
真没想到,我居然能在吾爱学C语言
 楼主| 熊猫拍板砖 发表于 2023-3-22 21:45
02131103 发表于 2023-3-22 21:41
真没想到,我居然能在吾爱学C语言

无论是逆向还是正向开发,用到C的地方还是很多的
稻海香 发表于 2023-3-22 22:01
一念苍穹变 发表于 2023-3-22 22:03
基础c一定要学好
planckbug 发表于 2023-3-22 22:06
熊猫拍板砖 发表于 2023-3-22 21:45
无论是逆向还是正向开发,用到C的地方还是很多的

能不能具体说一下有哪些,好像目前市场JAVA居多
 楼主| 熊猫拍板砖 发表于 2023-3-22 22:29
planckbug 发表于 2023-3-22 22:06
能不能具体说一下有哪些,好像目前市场JAVA居多

如现在的java等都是有gc的垃圾自动回收机制,C没有,C的垃圾回收得开发者自己回收,所以这能提高开发者对内存的掌握,什么时候回收都能掌握
在逆向开发中,现在很多的保护都是写在so里的,还有游戏的保护之类的都是需要会点C之类的
还有一些就是研究mysql源码之类的
xc0102 发表于 2023-3-22 22:42
直接从入门到放弃
fzydsz 发表于 2023-3-22 22:55
学习学习
vvzpcg 发表于 2023-3-22 23:25
以前听人家说过,C学会了,其他的就容易了。C可以做任何其他语言做的东西。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表