首页 > 其他分享 >我对二进制的运算和用途的认识与思考

我对二进制的运算和用途的认识与思考

时间:2024-02-03 13:55:15浏览次数:39  
标签:逻辑 计算机 二进制 思考 CPU 移位 运算

在初步了解计算机的“大脑核心“CPU之后,对于计算机是如何处理数据、指令、函数的流程有了大致的逻辑认知。在阅读过有关二进制的知识后,对于计算机构成和运行有了更深的了解,主要分为对于二进制的运算和用途的思考。
首先,作为计算机核心的CPU同其他计算机组件一样,都属于IC集成电路的一种,在之前我对于计算机32位还是64位这个区分并不是很了解,但在阅读CPU知识和二进制知识后,认识了位和字节的概念,并且能够找到他们二者的联系。这就跟上文所提到的IC电子部件有关,正如书中所说,IC这些电子部件通过引脚镶嵌在电路板上,而IC两侧的引脚通过不同的电压反应不同的状态,就与二进制010111……这种只有两种状态的二进制类似,因此计算机就采用了位作为运行的最小单位,并且采用字节作为计算机记录信息的最小单位,因此位与字节之间也有着关系,再者就是计算机的位单位也是二进制中的一位,电脑处理二进制数的位数一般位8的倍数,因此1字节=8位。到这里,我对于32位还是64位有了明确的认识,即能够一次处理多少字节的数据。
对于二进制数还包括了其特有的运算法则,进制之间的转换……这些知识点的基础就是二进制中“如果数字小于字节数时需要往高位上补0”。在这一点的基础上我相继认识了移位运算、负数补数的表示与转化和逻辑运算。首先是移位运算,在这一个知识点中,对于二进制的运算有了一个新的认知,二进制不单单停留在数字意义上的运算,还包括图形方面。在位移运算中又有很多的运算法则例如在左移位运算中“空位补0,溢出舍弃”的思想与<<或>>表示左移位符号<<或>>后所跟的数值则是移位的位数这个运算法则,如果结合图形则需要将0和1看作两块不同颜色的方块,左移后空白部分补上0所对应的颜色,就如同书中所说的“霓虹灯”一般流转传递,而右移位就会产生一个问题,高位缺失补1还是0?这就跟是逻辑移位还是算数移位有关联,首先在二进制运算之中,通常用加的思想去进行运算,1-1可以看作是1+(-1),这时就出现了负数这个概念,负数在二进制表示中是由正数进行“取反+1”这一步操作,也叫求补数(正数表示负数),例如1的二进制数是00000001,那-1就是11111111。两相相加,遇二进一,溢满舍弃就是0也就是00000000。而在算数右移位中1表示负数,0表示正数,当最高位空缺时根据二进制数值进行判断补1或者0。而在逻辑右移位时,当二进制数值表示的是图形而并非数值的情况下就要在最高位补0。这是关于二进制算数运算的相关知识。而逻辑运算相当于JAVA中的逻辑运算符,0和1在这里可以看作Boolean型变量true和false。逻辑运算分为很多种,例如“逻辑与”相当于“&”,是指两边同为1时结果为1,其余情况结果为0;“逻辑或”同“I”一样,只要两边中其中一边有1,结果就为1;至于“逻辑非”就相当于“!”,就是将0变成1,1变成0的取反。这是与JAVA逻辑运算符相似的地方,当然剩余逻辑异或,则需要额外记忆,逻辑异或是指排斥相同数值的运算,只有两方是1和0结果才为1,剩余都是0。
通过这些算数运算和逻辑运算法则,结合对于CPU的认识,二进制在CPU的运行中既将数据进行处理运算,同时也如同信号一样,0和1都代表相反的信号,来告诉计算机下一步的执行顺序,如此来参与到计算机的运行之中。

标签:逻辑,计算机,二进制,思考,CPU,移位,运算
From: https://www.cnblogs.com/xhsbk/p/18004265

相关文章

  • 数据为什么要用二进制数来表示
    1、易于实现数字电路里的状态是由开关来控制,开关只有开和关两种状态,而二进制也只有"0"和"1"两种状态,很容易用电子元件实现。因此采用二进制来表示,0表示低电平,1表示高电平,或者反过来表示的也有。2、简化运算二进制数加法和乘法仅各有3条运算规则(0+0=0,0+1=1,1+1=10和0×0=0,0×1=0,1×1=1......
  • (坚持每天写算法)算法学习与复习part1基础算法1-13——位运算
    最近确实有在写算法,在写dp,之前学的时候不全,被计数,树型等dp折磨了一下。位运算是将重点放在数字的位上,通常作为辅助行动,比如状态dp,有的时候是为了节省时空复杂度而使用的。这是今天的题目: 位运算应用的情况除了上面讲的,还有单纯的位问题,上面的题目就是一个例......
  • 二进制
    二进制数0.1,用十进制表示。小数点后一位位权是2的-1次方=0.5即十进制数为0.5小数部分二进制转十进制例如0.1111转十进制12的-4次方+12的-3+12-2+12-1=0.0625+0.125+0.25+0.5小数点后四位范围0.0000~0.1111转化为十进制位0.5、0.25这些无序的十进制数编程语言提供两......
  • 计算机中的基本运算
    二进制的算术运算1.二进制的加法运算示例:0+0=00+1=11+0=11+1=101011+1001=101002,二进制的减法运算示例:1-1=01-0=10-0=00-1=1(解释一下这个,可以看作是向前借1,看作2-1)1101-1010=0011(当然前面的0是可以省略的)3.二进制的乘法运算示例:101X11=11114.二......
  • C++编程练习||创建一个名为Rational的类,进行分数运算。
    题目:创建一个名为Rational的类,进行分数运算。创建一个名为Rational的类,进行分数运算。用整数变量表示类的private数据-numerator(分子)和denominator(分母)。提供一个带默认值的构造函数,并且它应该以简化的形式保存分数。例如分数2/4应在对象中保存为numerator为1,denominator为2的形式。......
  • 《程序是怎样跑起来的》第二章——数据是用二进制数表示的?
    关于第二章,主要讲了关于二进制方面的知识。书上说大家都熟知计算机内部是由IC这种电子部件构成的,IC有不同的形状,带相同的是都有很多引脚,其实见过CPU的都知道CPU下部有着密密麻麻的针脚,IC的所有针脚都只有直流电压0V和0.5V两个状态,也就是说,一个针脚,只能表示两个状态。而这就决定了......
  • 运算符
    运算符Java语言支持如下运算符:优先级()算数运算符:+、-、*、/、%、++,--packageoperator;publicclassDemo04{publicstaticvoidmain(String[]args){//++--自增,自减一元运算符inta=3;intb=a++;//执行完这行代码后,先给b赋值......
  • linux系统mysql下载安装(二进制下载)
    最近在重新学习测试的基础知识,刚好学到数据库这一章,打算搭建一套linux系统上搭建mysql的服务端,简单做个记录,今天主要了解了二进制下载CentOs默认使用的软件包管理器是yum,我是用的是CentOs7,执行安装命令为:sudoyuminstallmysql-server,但是在安装的时候遇到问题,提示“没有可用软......
  • 深度学习框架:为啥不同的框架,不同的运行设备(GPU/CPU/NPU),运算出的结果性能会有一定百分
    经常会遇到有人在网上说,TensorFlow的计算结果比pytorch的高上几个百分点,也有人说RTX3090的计算结果没有A100的好,还有人说NPU的计算结果比GPU的高,而且这种说法在业内也是极为常见的,甚至在读书时的实验室里和人交流也会有这种反馈,这里对其说说自己的理解。算法本质导致的随机性,......
  • 关于「日志采样」的一些思考及实践
    一、背景:系统日志可用于追踪用户操作轨迹,异常情况下,合理的日志有助于快速排查、定位问题,毫无疑问,打印日志对于系统是很重要的。当业务规模较小时,大家都倾向于享受日志带来的便利,从而忽略日志带来的潜在的负面影响,缺乏对日志的管控。在JD当前用户量、业务规模下,绝大多数C端系统、甚......