码出高效_第一章 | 有意思的二进制表示及运算

这篇具有很好参考价值的文章主要介绍了码出高效_第一章 | 有意思的二进制表示及运算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0与1的世界

1.如何理解32位机器能够同时处理处理32位电路信号?

设想有8条电路,每条电路有高电平和低电平两种状态,即就有28=256种不同的信号。假设其表示区间为0~255,最大数即28-1。

那么32条电路能够表示最大数为(232-1)=4294967295,即所谓的32位电路信号。

2.如何理解负数的加减法运算

  • 正负数表示: 上面的8条电路,最左侧一条表示正负:0-整数,1-负数,不参与数值表示。8条电路表示数值范围 -128~127;

  • 二进制整数最终以补码表示: 整数原、反、补码都一样,负数补码为反码加1。
    (这样减法运算也可以用加法器实现,使用同一个运算器可减少中间变量的存储开销,降低了CPU内部的设计复杂度,符号位也参与运算)

3.溢出在运算中如何理解

如下图,计算结果需要9条电路表示,用8条电路来表达这个计算结果即溢出。(即在数值运算过程中,超出规定的表示范围)
码出高效_第一章 | 有意思的二进制表示及运算

4.计算机种常用的存储单位及转换

以上示例一条电路线在计算机种被称为1位,即1个bit(简写b)。

8个bit组成一个单位,称一个字节,即1个Byte(简写B)。

1024个Byte(简写为KB);1024个KB(简写为MB);1024个MB(简写为GB)。

5.位移运算规则

补充:

二进制整数最终以补码表示:正数(原、反、补都一样);负数(符号位与原码相同,数值位由原码取反+1)

例如:正数和负数的二进制表示(及十进制转二进制方法)

码出高效_第一章 | 有意思的二进制表示及运算
移动规则:

  1. 左移右移: 符号位参与移动,除负数向右移动,高位补1之外,其他情况均在空位处补0。

    向右移动1位近似表示除以2,但不完全是。十进制奇数转化为二进制后,向右移动时,最右边的1将被直接抹去,即右移对于奇数并非完全相当除以2。

    例如111(二进制) = 7(十进制),右移1位:11(二进制) = 3(十进制),这里也解释了除法中的向下取整。

    如下图,正数或者负数向左移动的结果可能是正数,也可能是负数。(高位添补规律图示)

码出高效_第一章 | 有意思的二进制表示及运算

  1. 无符号向右移动 >>>

    注意不存在 <<< 无符号向左移动。

    向右移动时,正负数高位均补0,正数不断向右移动的最小值是0,而负数不断向右移动的最小值是1。

    码出高效_第一章 | 有意思的二进制表示及运算
    为何负数不断向右移动最小值是1?(待补充)

6.有趣的 && 和 &

  1. 按位与(&) 、逻辑与(&&) 和 按位或(|)、逻辑或(||)

    区别:&& 有短路功能 ,例如:

    /**
     *  由于&&前边的表达式为false触发短路直接退出,最后结果:a = false ,b = true 
     */
    boolean a = true;
    boolean b = true;
    boolean c = (a=(1==2)) && (b=(1==2)) 
    
      /**
      *  最后结果:a = false ,b = false 
      */
     boolean a = true;
     boolean b = true;
     boolean c = (a=(1==2)) & (b=(1==2)) 
    

    同理,按位或(|)对应的逻辑或(||)也有短路的功能

     /**
      *  由于||前边的表达式为true触发短路直接退出,最后结果:e = true ,f = false 
      */
     boolean e = false;
     boolean f = false;
     boolean g = (e=(1==1)) || (f=(1==1)) 
    
    /**
      *  最后结果:e = true ,f = true
      */
     boolean e = false;
     boolean f = false;
     boolean g = (e=(1==1)) || (f=(1==1)) 
    

    注意:逻辑或、逻辑与只能对布尔类型的条件表达式进行运算

  2. 异或运算 ^

    异或运算没有短路功能,其运算:相同为0,不同为1

    例如:1^1=0; 10=1;truetrue=false;…文章来源地址https://www.toymoban.com/news/detail-461542.html

浮点数

1.定点小数(为什么会出现浮点数表示?)

到了这里,关于码出高效_第一章 | 有意思的二进制表示及运算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【动画进阶】有意思的网格下落渐次加载效果

    最近,群友贴了一个非常有意思的动画效果,整体动画效果如下: 点击某个按钮后,触发一个动画效果,原本的网格内容,将按顺序(又带点随机的效果)从高处下落进行加载填充动画。 当然,我个人认为这个动画有点华而不实,主要体现在这个动画一次需要耗费较长时间

    2024年02月16日
    浏览(46)
  • 涨姿势了,有意思的气泡 Loading 效果

    今日,群友提问,如何实现这么一个 Loading 效果: 这个确实有点意思,但是这是 CSS 能够完成的? 没错,这个效果中的核心气泡效果,其实借助 CSS 中的滤镜,能够比较轻松的实现,就是所需的元素可能多点。参考我们之前的: 使用纯 CSS 实现超酷炫的粘性气泡效果 巧用 C

    2023年04月13日
    浏览(43)
  • 第五期:字符串的一些有意思的操作

    PS:每道题解题方法不唯一,欢迎讨论!每道题后都有解析帮助你分析做题,答案在最下面,关注博主每天持续更新。 1. 替换空格 题目描述 请实现一个函数,把字符串 s 中的每个空格替换成\\\"%20\\\"。 示例1: 输入:s = “We are happy.” 输出:“We%20are%20happy.” 示例2: 输入:s =

    2024年02月08日
    浏览(52)
  • 分享一个有意思的文字飞入动画(模仿水滴融合)

    先上效果图: 代码如下:

    2024年02月01日
    浏览(42)
  • 【动画进阶】有意思的 Emoji 3D 表情切换效果

    最近,群里面的同学发了这么一个非常有意思是动画效果: 原效果地址 -- CodePen Demo -- Letter Hop 当然,原效果,主要使用了 GSAP 动画库以及一个 3D 文字 JavaScript 库: 但是,这个效果,其实本身并不复杂。 本文,我们将不借助任何动画库,尝试用最简单的 CSS 和 JavaScript 代码还

    2024年02月14日
    浏览(36)
  • 有意思!一个关于 Spring 历史的在线小游戏

    发现 Spring One 的官网上有个好玩的彩蛋,分享给大家! 进到Spring One的官网,可以看到右下角有个类似马里奥游戏中的金币图标。 点击该金币之后,会打开一个新的页面,进入下面这样一个名为:The History Of Spring 的在线小游戏 你可以使用上下左右的方向键来控制Spring的Logo一

    2024年04月27日
    浏览(38)
  • kill 进程时遇到的一件有意思的事情

    一般来讲,我们在 kill 掉一个进程的时候通常有两个选择: 找到进程的 pid 号,然后执行 kill 命令 找到进程的名字,然后执行 pkill 命令 pkill 和 kill 命令都是向指定的进程发送信号,从而完成终结进程的操作,主要区别在于 pkill 命令与 pgrep 配套使用,能够踢出指定终端用户

    2023年04月10日
    浏览(43)
  • vue有意思的图片动画插件direction-reveal

    功能:操作简单好上头,动画特效很丝滑,有很多种供选择 导入到需要使用动画的单页面 使用样式 导入css,如果用到了scss就导入scss,用的css就导入.css文件 https://github.com/NigelOToole/direction-reveal 文章到此结束,希望对你有所帮助~

    2024年02月12日
    浏览(34)
  • 有意思,我的GitHub账号值$23806.2,快来试试你的?

    睡不着,看到一个有意思的网站: Estimate Github Worth Generator 。 它可以用来估算 GitHub 账号的价值。马上试了一下。 我的账号估值: $23806.2 操作很简单,点击Estimate Github Worth Generator,进入网站。 具体如下图: 在唯一的输入框中,输入您的GitHub账号,点击按钮 Generate Worth 按钮

    2024年02月04日
    浏览(50)
  • rollup npm 工具包怎么做点有意思的事情

    一个 NPM 包,帮助数十万程序员提高数十倍效率,难道不开源出来?(一) 首先贴下我们的官网 【预览页】 https://kennana.github.io/toolkit-use/ 我们的推特 【toolkituse】 https://twitter.com/Toolkituse 我们的github 【toolkit-use】 https://github.com/KenNaNa/toolkit-use

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包