亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【備戰春招】第9天-C01左移與右移

標簽:
C
  • 课程名称:Linux C语言结构体
  • 课程链接:http://www.xianlaiwan.cn/learn/409
  • 章节名称:
    • 第6章:位运算的秘密
      • 6-4 左移与右移
    • 第7章:重识递归函数
      • 7-1 递归调用
      • 7-2 递归原理
  • 讲师姓名:雷过就跑
  • 时间:2023-02-015 12:30

课程内容

  • 左移:将数据对应的二进制值逐位左移若干位

    • 左移时,会把最高位舍弃掉,而在最后补上0

    • 规则为:高位丢弃,低位补0

    • 左移n位相当于,将原来值扩大2n2^n2n

    • int x = 0x80000001;// 这是一个符号位为1的整数
      x << 1;// 结果是2,符号位超出整型范围,被舍弃
      
    • 如果计算与2相乘,左移操作效率要高出很多

  • 右移:将数据对应的二进制值逐位右移若干位

    • 右移相当于整除2的过程
    • 对于符号位为1的右移,右移时要补1
  • 函数的递归调用

    • 在调用函数过程中,被调用函数调用它本身的过程
    • 递归原理
      • 函数在定义中的参数,在没有调用的时候,是不会被分配内存单元的,只有在调用的时候才会被分配
      • 在调用函数时的,参数就叫实参,会为其分配临时存储单元,然后才将其值传递进来
      • 同时传递进来的还有主调函数执行处代码地址,因为调用函数时,会移动到代码其它位置处,函数执行完,再接着调用处继续执行,所以要记录主调函数代码的地址
      • 调用函数结束后,将控制转回主调函数,并释放临时存储空间
      • 所以在函数调用过程中要保存很多值
        • 做保护现场时,传递的返回地址
        • 函数参数
        • 函数调用结束时,其返回值
        • 这些都是数据,都是保存至栈中,通过控制栈指针来容纳这些数据
      • 所以如果早递归调用,就是不断在产生上述数据
        • 因为是递归调用,所以返回地址应该都相同
        • 但参数不同,都在栈中不断被创建,如果没有停止,就出现栈溢出
        • 如果执行到某处,停止分配栈空间,也就是不需要递归调用了,就会产生一个返回值
        • 带着这个返回值,根据返回地址,从上一次被调用处开始执行
      • 递归就是将一个问题规模为n的问题简化为规模为n-1的问题,然后依次降解,直到问题可解,将低规模的解再带入到高规模问题中,最后求出规模为n的问题的解
        • 递推思想,是构造一个低阶的规模方法,然后不断增加规模,直到高规模问题得解

学习心得

可以深入理解递归啦
函数调用
求阶乘
递推

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
9
獲贊與收藏
1

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消