2023-02-17
编程语言
00

目录

变量的存储空间
获取变量类型所占的内存空间
变量的本质
二进制和十进制
十进制转换为二进制
原码、反码、补码

变量的存储空间

  • 1TB = 1024GB
  • 1MB = 1024KB
  • 1KB = 1024byte
  • 1byte = 8bit
  • 1bit = 二进制表示,0或1

获取变量类型所占的内存空间

通过sizeof方法可以获取变量类型所占的内存空间(单位:字节)

c#
int intSize = sizeof(int); Console.WriteLine("int 所占的字节数为:" + intSize);

输出结果为:4,即一个int类型的变量占4个字节的空间

变量的本质

  • 变量的本质是2进制 ⇒ 计算机中所有数据的本质都是二进制,是一堆0和1

为什么是2进制?

  • 数据传递只能通过电信号,只有开和关两种状态。所以就用0和1来表示这两种状态,计算机中的存储单位最小为bit(位),他只能表示0和1两个数字;
  • 计算机中的存储单位最小为bit(位),他只能表示0和1两个数字,1bit就是1个数,要不是0要不是1,为了方便数据表示出现一个叫byte(字节)的单位,它是由8个bit组成的存储单位,所以我们一般说一个字节为8位

二进制和十进制

数字3245如何分别用二进制和十进制来表示?

计算各个数位上的n次方的结果然后依次相加,但是数字很大的话依次列举就比较麻烦

  • 十进制

image.png

  • 二进制

image.png

十进制转换为二进制

使用短除法不断的除以2,直到除尽为止,然后从下往上依次列举出余数即为这个数的二进制的表达,然后补充完整的八位,用最高位(即最左边的一位)表示符号,剩下的位表示数值,所以31在计算机中的二进制表示为00011111

image.png

原码、反码、补码

反码、原码和补码是计算机中表示带符号整数的三种不同方法。它们主要用于表示正数和负数;

  1. 原码 原码是最简单的一种表示带符号数的方法,它用最高位(即最左边的一位)表示符号,剩下的位表示数值的绝对值。
  • 符号位:最高位为0表示正数,最高位为1表示负数。
  • 数值部分:用二进制表示数值的绝对值。
  • 例子: 假设我们使用8位原码来表示整数:
    • +5:原码为 00000101(符号位是0,表示正数,数值部分是5)
    • -5:原码为 10000101(符号位是1,表示负数,数值部分是5)
  1. 反码 反码是将原码的数值部分取反(即0变1,1变0),符号位不变。
  • 正数的反码和原码相同。
  • 负数的反码是将原码的数值部分每一位取反。
  • 例子: 假设我们使用8位原码来表示整数
    • +5:反码为 00000101(正数,反码和原码相同)
    • -5:原码是 10000101,反码是 11111010(负数,取反数值部分)
  1. 补码 补码是将反码加1。补码是现代计算机中最常用的表示带符号整数的方式,它具有一些优点,如加法和减法的运算更加简单。
  • 正数的补码和原码相同。
  • 负数的补码是反码加1。
  • 例子: 假设我们使用8位原码来表示整数:
    • +5:反码为 00000101(正数,反码和原码相同)
    • -5:
      • 原码: 10000101
      • 反码: 11111010
      • 补码: 11111010 + 1 = 11111011
  • 补码在计算机中使用广泛,因为它简化了加法、减法的操作,并且没有两个表示零的情况(原码和反码中都有+0和-0)。

本文作者:xuxuxuJS

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!