计算机基础_程序是怎样跑起来的_02_计算机的数据使用二进制数表示的

计算机组成原理- 02 数据的表示方法 笔记 正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法移码表示法主要用于表示浮点数的阶码,可以直接 比较大小。表示范围和补码相同,只有最高位相反。 阅读详情

计算机的数据是用二进制数表示的

0、热身问题

  1. 32位是几个字节?
    4字节。
  2. 二进制 0101 1100 转换成十进制数是多少?
    92。
  3. 二进制 0000 1111 左移两位后,会变成原来的几倍?
    4倍。
  4. 补码形式表示的8位二进制数 1111 1111,用十进制数表示的话是多少?
    -1。
  5. 补码形式表示的8位二进制数 1010 1010,用16位的二进制数表示的话是多少?
    1111 1111 1010 1010。
  6. 反转部分图片模式时,使用的是什么逻辑运算?
    XOR运算(逻辑异或运算)。

数值、字符串和图像等信息在计算机内部都是以二进制数值的形式来表现的。


1、用二进制数表示计算机信息的原因

计算机内部是由IC(集成电路)这种电子部件构成的,而IC的所有引脚只有0V和5V两种状态。

即IC的一个引脚,只能表示两种状态(高电平、低电平)。

在这里插入图片描述

IC的这个特性,决定了计算机内部的信息数据只能使用二进制数来处理。

39(十进制数)     ---->    0010 0111(二进制)
'A'(文字) 	  ---->    0100 0001(二进制)

2、什么是二进制数?

生活中最常使用的是十进制,即0~9,逢十进一。

所以“二进制数”简单理解就是:每个位的数值不超过1,即只有0、1。

在这里插入图片描述

二进制数 0010 0111 转十进制数的过程。

在这里插入图片描述


3、移位运算和乘除运算的关系

移位运算:将二进制数值的各数位进行左右移位的运算。

注意:无论程序中的数几进制的,在计算机内部都会转换为二进制数进行存储,因此都能进行移位运算。

我们将二进制数“0010 0111”左移两位后,其对应的十进制数会如何变化?

在这里插入图片描述

明显可以看出,二进制数左移2位后,其对应的十进制数等价于乘以4。

所以,二进制左移后就会变成原来的2倍、4倍、8倍……

同理,十进制左移后就会变成原来的10倍、100倍、1000倍……

后面我们会讲到,右移1位相当于除以2,注意是“算术右移”,我们后面会提到。


4、便于计算机处理的“补数”

二进制数表示负数时,会把最高位当作“符号位”来使用。

符号位是0表示正数,1则表示负数。

计算机在做减法运算时,实际内部做的“加法运算”。此时,就需要使用“二进制的补数”来表示负数了。

补数:用正数来表示负数,即负数以“其绝对值的补码形式”来表示。

如何求补数:将二进制数的各位取反再加1即可(按位取反+1)。

例如,使用8位二进制数来表示-1。

在这里插入图片描述

再举个例子,我们用16位二进制数来表示-100。

-100的绝对值是:100
100的原码:0000 0000 0110 0100
100的反码:1111 1111 1001 1011
100的补码:1111 1111 1001 1100

所以,-100的二进制表示为:1111 1111 1001 1100

接下来,我们再来说说,计算机用“加法操作”来完成“减法操作”。

以 “1-1 = 1 + (-1) = 0” 为例子。

在这里插入图片描述

当计算的结果为负数时,计算结果的值也是以“补数”的形式来表示,我们以“3 -5 = 3 + (-5) = -2”为例。

在这里插入图片描述

再来一个有趣的例子,我们都知道Java中的byte型占1个字节,而2^8 = 256,所以byte类型表示的范围是“-128 ~ 127”,那我们从0开始,一直+1,会出现什么情况呢?

@Test
public void test() {
    int count = 0;
    byte a = 0;
    while (count != 257) {
        System.out.printf("%-5d", a);
        a++;
        count++;
        if (count % 15 == 0) {
            System.out.println();
        }
    }
}

在这里插入图片描述


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

右移有最高位补0和补1两种情况,右移分为逻辑右移和算术右移。

  1. 逻辑右移:高位补0
  2. 算术右移:正数,高位补0;负数,高位补1

以-4的逻辑右移2位和算术右移2位为例。

在这里插入图片描述

接着,顺便讲讲“符号扩充”。

符号扩充:在保持数值不变的情况下,将其转换成16位和32位的二进制数。

不管正负,只需要高位补“符号位”即可完成符号扩充。

在这里插入图片描述


6、掌握逻辑运算的窍门

算术运算:加减乘除的四则运算。

逻辑运算:对二进制数各数字位的0和1分别进行运算。

逻辑运算包括:

  1. 逻辑非(NOT运算)

    ANOT A
    10
    01
  2. 逻辑与(AND运算

    ABA AND B
    000
    010
    100
    111
  3. 逻辑或(OR运算)

    ABA OR B
    000
    011
    101
    111
  4. 逻辑异或(XOR运算)

    ABA XOR B
    000
    011
    101
    110

注:如有错误,敬请指正!

飞牛fnOS安装1Panel后Docker容器消失?三步教你恢复数据并避免踩坑 本文详细解析了飞牛fnOS安装1Panel后Docker容器消失的问题,指出这是由于daemon.json文件被覆盖导致。通过SSH连接、修复配置文件和系统重启三个步骤,用户可以轻松恢复数据。文章还提供了预防措施和最佳实践,帮助用户避免类似问题。 阅读详情

相关推荐

Windows 10 下 DockerToolbox 安装全攻略:从下载到配置阿里云镜像加速

本文详细介绍了在Windows 10系统上安装和配置DockerToolbox的完整流程。从下载安装包、执行初步安装,到关键步骤——修改虚拟机存储路径以及配置阿里云镜像加速器,旨在帮助开发者,尤其是初次接触Docker的新手,快速搭建高效的本地容器开发环境,并解决国内镜像下载缓慢的痛点。

moon9的博客 475

位运算,左移位,右移位

C语言既具有高级语言的特点,又具有低级语言的特点,如支持位运算就是其具体体现。当x为有符号数时,左边空位补符号位上的值,这种移位称为算数移位;左移一位后的字节内容 00011110 对应十进制值为30。右移一位后的字节内容 11111000 对应十进制值为-8。右移两位后的字节内容 11111100 对应十进制值为-4。右移三位后的字节内容 11111110 对应十进制值为-2。右移一位后的字节内容 00000111 对应十进制值为7。

ww1425408527的博客 3299

Nmap的介绍、安装 并进行网络扫描

Nmap概述 Nmap(Network Mapper(网络映射器))是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。 正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Cheney ' blog 2万+

逻辑运算符,位运算符

DAY02 逻辑运算符** & | !**的应用: &:与。两边的表达式结果都是true时,则为true,否则为false; | :或。只要有一个为true则结果为true,否则结果为false。 ! :非在这里插入代码片。!true=false,!false=true。 ^:异或。两边相同时为false,两边不同时为true。 &&am

ATT 505

Python在Windows环境下驱动乐视三合一摄像头的深度图像处理实践

本文详细介绍了在Windows系统下,使用Python驱动乐视三合一摄像头进行深度图像处理的完整实践流程。从环境配置、驱动安装、OpenNI与OpenCV库的部署,到深度与彩色数据流的读取、可视化、三维点云转换以及背景移除等应用开发,为开发者提供了从零开始掌握深度摄像头编程的实战指南。

gitlab7runner的博客 231

Blender学习笔记——制作向量场

#下载Blender - UE4 - FGA Vector Field Editor插件的压缩包,Github上的下载地址如下:https://github.com/isathar/Blender_UE4_VectorFieldEditor #下载并解压后将FGA VectorFields文件夹复制到C:\Program Files\Blender Foundation\Blender 2.83\2.83\scripts\addons目录下,此步骤可根据blender安装的位置自行调整,只要放入addon

wychao2020的博客 1723

位运算 笔记

二进制转十进制 从个位开始逐位乘上2^i(i从0到6) & 按位与 若两个相应的二进制位都为1,则该位结果为1,否则为0 00000011(3)&00000101(5)=00000001(1) 补码 正整数的补码与原码相同 负整数的补码,是其对应正数二进制取反后加1,即 -a=~a+1 补码转原码 若补码符号位(左边第一位)为0,则其为正数,其原码就是补码 若为1,则是一个负数,...

我于万物之中 869

双系统引导修复:GRUB消失后恢复Windows与Ubuntu启动菜单

在UEFI引导架构下,操作系统启动依赖于EFI系统分区(ESP)中存储的引导加载程序。当多个系统共存时,引导管理器负责识别并加载不同操作系统的引导文件。然而,Windows更新或系统调整时常会重置UEFI启动顺序,导致GRUB引导菜单消失,直接进入Windows。这一问题的技术价值在于理解UEFI启动流程与多系统引导管理机制,掌握ESP分区结构与引导文件修复方法。常见的应用场景包括双系统安装后的引导修复、系统更新后的启动项丢失以及磁盘分区调整导致的引导故障。本文针对**GRUB引导菜单消失**和**UEFI

weixin_29895109的博客 293

C语言二进制除法用左右移位来表示

0.628 为 8分之5 相当于 t = (t << 2) + t;1.25 为 4分之5 相当于 t = (t << 2) + t;左移1位 相当于 乘以2 左移2位 相当于 乘以4 左移3位 相当于 乘以8 左移4位 相当于 乘以16 …右移1位 相当于 除以2 右移2位 相当于 除以4 右移3位 相当于 除以8 右移4位 相当于 除以16 …t = (t << 4)+(t << 3)+ t;

maknul的博客 1060

2026国内Claude Code保姆级教程:安装、避坑、防串台全优化

安装 Claude Code CLI + 切换 npm 国内镜像优先配置固定关闭:自动联网、自动项目扫描VSCode 内置终端直接用,不装多余插件会话隔离+指令约束,彻底解决 Rust、小程序 跨语言串台。

lpfasd123的博客 2541

Imagiq AI-PQ 图像质量增强模块详解:联发科 ISP 中的 AI 图像管线实战解析

随着智能手机影像系统对图像质量要求的持续提升,联发科在其 Imagiq ISP 中引入了 AI 驱动的图像增强模块——AI-PQ(AI-based Picture Quality),通过 AI 模型对亮度、色彩、噪声、锐度等多个维度进行动态调节与增强,实现更加智能化和个性化的图像输出效果。AI-PQ 在实际工程中已成为影响照片风格、视频观感和多模组一致性的核心能力之一。本文围绕 Imagiq 平台最新一代 AI-PQ 模块(2024-2025年量产平台为基础),结合实机开发与调优经验,深入剖析其各子模块的算

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1417

位移运算(左移,右移)

1.左移,当左移的位数超过该数值类型的最大位数时,编译器会用左移的位数去模类型的最大位数,按余数进行位移。丢弃最高位,0补最低位。左移相当于乘,左移一位相当于乘2,左移两位相当于乘4,即左移位数乘于2的n次方。 如: int i = 1,j=0x80000000;//设int为32位; i=i&lt;&lt;33;//33%32=1 左移1位,i变成2 j=j&lt;&lt;33;//...

悠然而然 1万+

在 VS Code 里配置 SAP Joule for Developers 的 ABAP AI side-by-side 能力

摘要: 随着ABAP开发工具链的演进,VS Code逐渐融入ABAP开发流程,SAP Joule for Developers的ABAP AI能力通过side-by-side模式(基于BTP中央服务)为多系统开发提供统一AI支持。该模式避免了各ABAP后端独立升级AI能力的碎片化问题,由管理员配置BTP订阅URL后,开发者可在ADT或VS Code中全局调用。实际落地需注意角色分工(管理员配置服务,开发者填写URL)、AI units资源规划及配置细节(如区分全局与项目级设置)。建议将Joule URL纳入

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 120

【程序是怎样跑起来的】第2章:数据是用二进制数表示的

二进制的基数为2,图2-3中的202122202122...称为位权。数字的位数不同,位权也不同。同理,十进制的基数为10。

qq_34222839的博客 888

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机基础(一):二进制详解

二进制 我们都知道,计算机的底层都是使用二进制数据进行数据流传输的,那么为什么会使用二进制表示计算机呢?或者说,什么是二进制数呢?在拓展一步,如何使用二进制进行加减乘除?二进制数如何表示负数呢?本文将一一为你揭晓。 为什么用二进制表示 我们大家知道,计算机内部是由IC电子元件组成的,其中 CPU 和 内存 也是 IC 电子元件的一种,CPU和内存图如下 CPU 和 内存使用IC电子元件作为基本单元,IC电子元件有不同种形状,但是其内部的组成单元称为一个个的引脚。有人说CPU 和 内存内部都是超大规模集成

Viper的程序员修炼手册 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

《程序是怎样跑起来的》——数据是用二进制数表示的

1. 32 位是几个字节 ? 我:2的5次方=32,5个。 2. 二进制数 01011100 转换成十进制数是多少? 我:懒得算。 3. 二进制数 00001111 左移两位后,会变成原数的几倍? 我:2的2次方=4倍 4.  补码形式表示的 8 位二进制数 11111111,用十进制数表示 的话是多少? 我:补码啥意思 5.  补码形式表示的 8 位二进制数 10101010,用 16 位的二进 制数表示的话是多少? 6. 反转部分图形模式时,使用的是什么逻辑运算? 我:图形模式啥意思?应该是.

qq_41767629的博客 313

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

详解计算机内部存储数据的形式---二进制数

详解计算机内部存储数据的形式—二进制数 前言 要想对程序的运行机制形成一个大致印象,就要了解信息(数据)在计算机内部是以怎样的形式来表现的,又是以怎样的方法进行运算的。在 C 和 Java 等高级语言编写的 程序中,数值、字符串和图像等信息在计算机内部都是以二进制数值的形式来表现的。也就是说,只要掌握了使用二进制数来表示信息的方法及其运算机制,也就自然能够了解程序的运行机制了。那么,为什么计算机处理的信息要用二进制数来表示呢? ...

Mekeater的博客 1万+

读《程序是怎样跑起来的》总结

第一章 对程序员来说CPU是什么 1. CPU的内部结构解析 2. CPU是寄存器的集合体 3. 决定程序流程的是程序计数器 4. 条件分支和循环机制 5. 函数的调用机制 6. 通过地址和索引实现数组 第二章 数据是用二级制数表示的 补数 逻辑右移和算术右移 计算机进行小数运算时出错的原因 二进制数表示小数 计算机出错的原因 有一些十进制数的小数无法转换成二进制数,小数点后四位用二进制数表示时的数值范围是0.0000-0.1111。因此,这里只能表示0.5、0.25、0.125、0

ilvjiale的博客 5805

程序是怎样跑起来的-第02章 数据是用二进制数表示的

第02章 数据是用二进制数表示的 热身问题 1:32位是几个字节?     4字节:8位为一个字节,所以是4个字节。 2:二进制数0101 1100转换成十进制是多少?     0*128+1*64+0*32+1*16 + 1*8+1*4+0*2+0*0 = 4+8+16+64 = 92:将二进制各位数与位权相乘再相加即可。 3:二进制

静静燃烧的雪的专栏 927

计算机二进制表示和存储各种数据

计算机二进制数:计算机里存储的一切都是以二进制的0和1来表示。二进制是计算机使用的数字编码系统,所有的数据都以二进制形式进行存储和传输。在计算机中,数据通常以比特(bit)的形式存储和传输,一个比特可以表示0或1。计算机中二进制数作用 计算机中的所有数据,无论是文本、图像、音频还是视频,最终都会被转换为二进制形式进行存储和处理。计算机中不同数据的表示和存储(数字、文字、图片、音频、视频)。编码和解码:编码是将数据转为二进制数,解码是将二进制数转为数据。

weixin_46485886的博客 5891

《程序是怎么跑起来的》第二章 数据是用二进制表示的

在C,JAVA等高级语言编写的程序中,数值,字符串和图像等信息在计算机中都是以二进制数值的形式来表现的 2.1 用二进制表示计算机信息的原因 计算机内部是由 IC(分数字IC模拟IC) 这种电子部件构成的,CPU和内存也是IC的一种。大部分IC的所有引脚,只有直流电压0v和5v两个状态,也就是说,IC的一个引脚只能表示两个状态 IC这个特性决定了计算机的信息数据只能用二进制数来处理,由于一个引脚只能表示两个状态,所以二进制的计数方式变成了0,1,10,11,100这种形式 计算机处理信息的最小单位是位 b

weixin_43541094的博客 360

《程序是怎样跑起来的》学习笔记(第二章)——数据是用二进制数表示的

一、课前热身 1.  32 位是几个字节 ? 2.  二进制数 01011100 转换成十进制数是多少? 3.  二进制数 00001111 左移两位后,会变成原数的几倍? 4.  补码形式表示的 8 位二进制数 11111111,用十进制数表示 的话是多少? 5.  补码形式表示的 8 位二进制数 10101010,用 16 位的二进 制数表示的话是多少? 6.  反转部分图形模式时,使用的是什么逻辑运算? 二、用二进制数表示计算机信息的原因 计算机的内部是由很多IC设备构成的,这些IC设备自身又有很多

qq_46111881的博客 404

第 2 章 数据是用二进制数表示的 总述|《程序是怎样跑起来的》精读版

在理解了 “为什么用二进制” 之后,本章自然过渡到 “二进制是什么”,帮我们建立对二进制的直观认知,夯实后续运算学习的基础 —— 这部分是所有底层知识的基石,也是程序员理解 “数据存储” 的关键。二进制的核心定义:二进制是以 2 为基数的计数系统,遵循 “逢二进一” 的规则,每一位的权值是 2 的幂(从右往左,第 1 位权值为 2⁰,第 2 位为 2¹,第 3 位为 2²,以此类推)。

Du_chong_huan的博客 591

c语言8位数据移位成16位数据,数据是用二进制数表示的

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?数据是用二进制数表示的[TOC]32位是几个字节?4因为8位 = 1字节, 所以 32位就是 32 ÷ 8 = 4 字节二进制数01011100转换成十进制数是多少?将二进制数的各数位的值和位权相乘后再相加, 即可转换成为十进制数.92二进制数00001111左移两位后, 会变成原数的几倍?4倍二进制数左移1位后会变成原...

weixin_28756833的博客 4189

二进制数的编码表示

数据在计算机中的编码表示 二进制数的编码表示   需要解决的问题:负数如何表示?   最容易想到的方案: 0:表示“+”号; 1:表示“-”号。   原码   "符号──绝对值"表示的编码 例如:   原码的缺点:   零的表示不惟一   进行四则运算时,符号位须单独处理,运算规则复杂。   补码   符号位可作为数值参加运算;   减法运算可转换为

cnscwang 8008

汇编语言:将ASCⅡ码表示的十进制数转换为二进制数/十六进制数

汇编语言:将ASCⅡ码表示的十进制数转换为二进制数/十六进制数 你们好! 这是我的第一个汇编程序的博客,汇编是一个神奇的东西,你深入了解他之后会为他着迷的!!! 题目 将ASCⅡ表示的十进制数字转化为二进制数,例如,默认输入30H,30H,32H,35H,36H,那么程序的最后查看AX寄存器应该是0100。 分析 题目中的30h代表是的十进制0的ASCⅡ码,十进制的数字0-9对应的ASCⅡ码就是3...

XYshaonianhaofang的博客 1万+
上一篇: 计算机基础_程序是怎样跑起来的_01_CPU是什么?
下一篇: 计算机基础_程序是怎样跑起来的_03_计算机进行小数运算时出错的原因
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

窝在角落里学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值