zoukankan      html  css  js  c++  java
  • 十二天深入理解计算机系统(二)

    信息的表示和处理

    理解字节序(大端、小端)

     可以参考博客大小端介绍以及判断

    位级运算

    一个有趣的应用使用异或实现两个元素之间的交换

    void inplace_swap(int *x, int *y)

    {

    *y=*x^*y;

    *x=*x^*y;

    *y=*x^*y;

    }

    逻辑运算符和位级运算符的一个重要区别

    如果第一个参数求值就能够确定表达式的结果,那么逻辑运算符就不会对第二个参数求值。

    逻辑右移和算术右移的区别

    例如[xn-1...x0],逻辑右移k位的结果为[0..0,xn-1..xk],算术右移k位的结果为[xn-1,xn-1..xn-1..xk]C语言中无符号的右移一定是逻辑的,有符号几乎所有的编译器/机器组合都对有符号数据使用算术右移。

    5 C语言有符号和无符号数

    -1<0u,大家猜想这个的条件是什么,是falseC语言隐式强制把有符号数转换为无符号数。

    总结

    数的表示,应该注意一些隐式转换,数据转换之间要注意。

  • 相关阅读:
    (JS/JQ)与Ajax
    JS与JQ的DOM处理
    正则表达式
    JS事件大全
    CSS(初级)学习笔记
    HTML学习笔记
    leetcode记录——65. 有效数字
    dp专题
    Hackerrank---A stones game
    组合博弈问题
  • 原文地址:https://www.cnblogs.com/jacksu-tencent/p/3468319.html
Copyright © 2011-2022 走看看