【C++造神计划】 进制

Data Types 数据类型

  • Primary: int、char、bool、float、double、void

  • Derived: pointer、reference、array、function

  • User Defined: class、struct、enum、union

1. 进制

数据类型在不同的 操作系统硬件平台 中,这些数据类型的 值域范围所占用的内存的数量 有关

  • char 字符型

  • int 整型

  • float 单精度浮点型

  • double 双精度浮点型

  • void 空类型

1 有关进制的思考

我们习惯的进制是十进制,计算机里面常用的是二进制、八进制、十六进制

思考:有没有三进制、五进制、十三进制...?

随机定一个进制,比如3进制

 

三进制表示个位数:0 1 2 十进制表示:1 -> 三进制表示:1 十进制表示:2 -> 三进制表示:2 十进制表示:3 -> 三进制表示:10 十进制表示:4 -> 三进制表示:11 十进制表示:5 -> 三进制表示:12

C 与 C++ 中进制的输出

 
#include <iostream>
#include <bitset>
using namespace std;

int main()
{
    cout << "———————— C语言 ————————" << endl;
    printf("%o\n",35);    //按八进制格式输出
    printf("%d\n",35);    //按十进制格式输出
    printf("%x\n",35);    //按十六进制格式输出
    
    cout << " " << endl;
    cout << "————————C++语言————————" << endl;

    cout << "35的8进制:" << std::oct << 35 << endl;  
    cout << "35的10进制" << std::dec << 35 << endl;  
    cout << "35的16进制:" << std::hex << 35 << endl;  
    cout << "35的2进制: " << bitset<8>(35) << endl;  //<8>:表示保留8位输出
    return 0;
}

2 位、字节

位 (bit)

  • 来自英文 bit,音译为“比特”,表示二进制位

  • 位是计算机内部数据存储的最小单位,11010100是一个 8 位二进制数

  • 一个二进制位只可以表示 01 两种状态: 两个二进制位可以表示 00、01、10、11 共4个数;三位二进制数可表示八个数……

字节 (Byte)

  • 字节来自英文 Byte,习惯上用大写的 B 表示

  • 字节是计算机中 数据处理 的基本单位,计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即 1 个字节等于 8 个比特(1Byte=8bit)。八位二进制数最小为 00000000(十六进制:00),最大为 11111111(十六进制:FF);通常 1 个字节可以存入一个 ASCII 码,2 个字节可以存放一个汉字国标码

3 数字在计算机中的存储

无符号规则 unsigned

  • 可以直接转换

    1001 1010 十六进制0x9A 十进制 154

    1001 1010 十六进制0x9A 十进制 154

有符号规则

  • 最高位是符号位:1(负数), 0(正数)

  • 原码:最高位是符号位,对其它的位进行本身绝对值即可

  • 反码:

    • 正数:反码和原码相同

    • 负数:符号位一定是1,其余为对原码取反

  • 补码:

    以下例子都是 8 位
    -9在计算机的表示:1111 0111
    原码: 1000 1001
    反码: 1111 0110
    补码: 1111 0111
    ~-9 = 0000 1000(按位取反)
    
    -12在计算机的表示:1000 1100
    原码: 1000 1100
    反码: 1111 0011
    补码: 1111 0100
    ~12 = 0000 1011(按位取反)
    
    -15在计算机的表示:
    原码: 1000 1111
    反码: 1111 0000
    补码: 1111 0001
    ~15 = 0000 1110(按位取反)
    • 正数:补码和原码相同

    • 负数:符号位一定是1,反码+1

拓展

  • 计算机中浮点数的表示形式:IEEE754

4 字符编码

百练成砖,我们一起成长!

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值