黑马程序员技术交流社区

标题: To Be The Best [打印本页]

作者: Lin3    时间: 2019-3-21 15:10
标题: To Be The Best
自2月28日开班至今,已半月有余。在这半个多月的时间里我收获良多。
首先申明,c是信仰!
在来黑马上课之前,我只是单纯的看过几个片段的视频课,没有什么基础。
来黑马上课之后,明显的感觉基础有提升,更重要的是有一群志同道合的同学一起努力奋斗。
基础课上重复了一遍C语言的语法,然后每讲一个知识点后都有时间自己敲代码去真正掌握。
然后就是遇到不懂的地方可以找大佬、助教或者讲师讲解。(当年自学时,最大的坑)
再细细的数下课余收获:
  开班第一天,和同学大佬讨论了C语言和c++在io的区别,讨论了scanf和cin对于输入溢出的处理机制:
cin对于接收的数值溢出时,会将该类型最大数值复制给变量;
scanf对于溢出的数值,先将输入存储于缓冲区,然后将缓冲区的的数据放入内存,溢出部分都抛弃。
scanf("%…) 读入正确返回值为1(溢出也属于正确),读入失败返回0(在输入超过20位数字时,实际赋值给变量的都位-1,cin也是一样,猜测是缓冲区的限度是20位)
printf("") 返回值位打印的字符数(中文字算两个字符,空格换行等也算字符)
hash的初步理解:
哈希算法相当于将不同的输入,选取一定的特征值,作为输出 来标记输入值。
把一个大的范围映射到一个小的范围,节省了空间,让数据更容易保存。
hash函数除了加密也常用于查找。
在考虑使用Hash函数之前,须要明确它的几个限制:
1. Hash的主要原理就是把大范围映射到小范围;所以,你输入的实际值的个数必须和小范围相当或者比它更小。不然冲突就会非常多。
2. 因为Hash逼近单向函数;所以,你能够用它来对数据进行加密。
3. 不同的应用对Hash函数有着不同的要求;比方,用于加密的Hash函数主要考虑它和单项函数的差距,而用于查找的Hash函数主要考虑它映射到小范围的冲突率。
/long | sca.out--stdin
管道符右边的可执行程序格式?
stdin接收管道符传输的标准输入参数
计算机内的数据是以补码形式存储的,正数的补码和原码一样,负数的补码是原码的反码+1;
unsigned转换之后的数据即是该数据的补码,除去符号位的影响。
if(n&1)可以判断奇偶性。
>>1效果等同/2
^异或 相同取0 不同取1
~ 取反
int a;
a=(a=20,a*3);合法成立
实际过程是先给a复制20,然后计算a*3,最后结果为60.
取余运算%,不能对小数操作,被除数和除数都不能为小数。
void (*f)(); //这里*f表示为一个函数,即f为函数指针
(void(*)()) //这个表达式就可以看做一个函数指针的转换符
(void(*)()) 0 //就是将0地址进行类型转换成一个函数指针
(*(void(*)())0) () //这里就是将转换过的0地址解引用,来调用其指向的函数
重点是将0看做地址,然后进行转换后调用
等效于:
typedefvoid(*fp)(); //将fp定义为一个返回值为void 的函数指针
(*(fp)0)();
位运算实现加减:
首先c=(a&b)<<1得出应该进1的位;
然后d=(a^b)得出相加没有进1的位;
再(c&d)<<1得出进一步进1的位....
如果c&d为0,则返回c | d;
递归....
这个过程相当于写竖式计算加减法,满2进1.
关于细节就不作过多描述了!
最后强调一下:C++天下第一!


作者: 柠檬leung不酸    时间: 2019-3-23 17:57
苦难有如乌云,远望去但见墨黑一片,然而身临其下时不过是灰色而已。——里希特
作者: 柠檬leung不酸    时间: 2019-3-25 19:38
深窥自己的心,而后发觉一切的奇迹在你自己。——培根
作者: 夜听雨    时间: 2019-3-27 11:33
屁,我大PHP才是
作者: 柠檬leung不酸    时间: 2019-3-27 16:58
大多数人想要改造这个世界,但却罕有人想改造自己。
作者: 卡哇伊伊    时间: 2019-3-28 12:04
只要朝着一个方向努力,一切都会变得得心应手。加油
作者: 万年吃瓜    时间: 2019-3-28 17:16
6得一逼
作者: 夜听雨    时间: 2019-4-1 16:23
今天很残酷 明天更残酷 后天很美好,坚持




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2