C++ 进制转化入门知识(1)

这篇具有很好参考价值的文章主要介绍了C++ 进制转化入门知识(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C++ 进制转化入门知识(1),夏驰和徐策带你从零开始学C语言,c++,C语言

一、什么是进制

进制是一种用来表示数值的系统或方法,它是基于一个特定的基数来工作的。在我们常见的几种进制中,有:

1. **二进制(基数 2)**:
   二进制只用两个数字:0和1。这是计算机内部使用的数制系统,因为计算机的基本单元(比特)只有两种状态:0或1。

2. **十进制(基数 10)**:
   十进制是我们日常最常用的数制系统,它包括十个数字:0到9。

3. **八进制(基数 8)**:
   八进制使用八个数字:0到7。它在计算机科学中偶尔会被使用,因为它可以更简洁地表示二进制数。

4. **十六进制(基数 16)**:
   十六进制使用十六个符号来表示数值:0到9,然后是A到F(表示10到15)。它也常在计算机科学中用来更简洁地表示二进制数。

在不同进制间转换时,主要是通过不断地除以基数并取余数来完成的。例如,要将一个十进制数转换为二进制,可以将该数除以2,并记录余数,然后再将商除以2,并记录新的余数,如此继续,直到商为0。然后,将所有余数倒序排列,即得到二进制表示。

二、进制在生活中的例子

以下是几种不同进制在生活或科技中的实际应用例子:

1. **二进制(基数 2)**:
   - **计算机系统**: 计算机内部使用二进制来处理和存储数据。所有的程序和文件最终都是以二进制的形式存储。
   - **条形码和QR码**: 通过表示0和1的黑白条纹(或方块),可以编码信息。

2. **十进制(基数 10)**:
   - **日常计数和计算**: 我们在日常生活中进行的大多数计数和计算都是基于十进制的。
   - **货币系统**: 大多数的货币系统也都是基于十进制的,例如美元、欧元等。

3. **八进制(基数 8)**:
   - **早期计算机系统**: 在某些早期计算机系统中,八进制曾被用作一种方便的方式来表示二进制数,因为它可以更紧凑地表示二进制数。
   - **文件权限(Unix/Linux系统)**: 在Unix和Linux系统中,文件权限通常是用八进制数来表示的。

4. **十六进制(基数 16)**:
   - **计算机编程**: 在计算机编程中,十六进制常用于表示内存地址和二进制代码。
   - **颜色代码**: 在HTML和CSS中,颜色通常是用十六进制代码来表示的,例如 `#FFFFFF` 代表白色。

5. **六十进制/六十基数(Sumerians和Babylonians用过)**:
   - **时间单位**: 我们的时间单位(小时、分钟和秒)部分采用了六十进制,例如一小时有60分钟,一分钟有60秒。
   - **地理坐标系统**: 地理坐标系统(度、分、秒)也是基于60的。

6. **十二进制(基数 12)**:
   - **尺寸和长度**: 在某些文化中,十二进制用于计算长度和尺寸(例如一打为12个单位)。
   - **古代货币系统**: 有些古代货币系统是基于12的,例如英国的先前货币系统(先令)。

通过这些例子,我们可以看到不同的进制在我们的日常生活和科技中有广泛的应用。

三、在计算机里的进制

1.二进制

        C语言中,我们如果想表示一个二进制数,可以用0b作为前缀,然后跟上0和1组成的数字,我们来看看一段代码。

C语言:

#include<stdio.h>
int main(){
	int a=0b101;
	printf("%d\n",a);
	return 0;
}

这个是英雄师傅说的但是还是输出不出来二进制,至少再在dev c++是这么回事。 

2.八进制

思考题

一天上课老师问全班同学

C语言:

#include<stdio.h>
int main(){
	int a=0123;
	printf("%d\n",a);
	return 0;
}

小A不假思索的说应该输出123,很快教室里很多同学都同意小a的观点,而坐在后排的小B思考一段时间过后,却说不答案应该是83

请问应该输出应该是什么?

答案:

83,为什么呢因为在C语言中八进制的表示法是前缀1个0,然后跟上0-7的数字,本文中老师并没有说一定是10进制。
C++ 进制转化入门知识(1),夏驰和徐策带你从零开始学C语言,c++,C语言

英雄师傅认为,八进制的表示法是前缀1个0然后跟上0-7的数字但是我却输出不出来,这是为什么呢?

我查资料后发现:

  • 在C语言中,我们使用了%o格式说明符来输出八进制数,而对于二进制输出,我们需要手动实现一个循环来显示每一位。
  • 在C++中,我们可以使用std::octstd::bitset来分别输出八进制和二进制数。
  • 在Java中,我们使用Integer.toOctalStringInteger.toBinaryString方法来输出八进制和二进制数。

       C语言:

#include <stdio.h>

int main() {
    int num = 42;
    
    // 输出八进制数
    printf("Octal: %o\n", num);
    
    // 输出二进制数(C语言标准库不直接支持二进制输出,我们可以自定义一个函数来实现)
    for(int i = 31; i >= 0; i--) {
        printf("%d", (num >> i) & 1);
    }
    printf("\n");
    
    return 0;
}

C++:

#include <iostream>
#include <bitset>

int main() {
    int num = 42;
    
    // 输出八进制数
    std::cout << "Octal: " << std::oct << num << std::dec << std::endl;

    // 输出二进制数
    std::cout << "Binary: " << std::bitset<32>(num) << std::endl;

    return 0;
}

JAVA:

public class Main {
    public static void main(String[] args) {
        int num = 42;
        
        // 输出八进制数
        System.out.println("Octal: " + Integer.toOctalString(num));

        // 输出二进制数
        System.out.println("Binary: " + Integer.toBinaryString(num));
    }
}

3.十六进制

同样看一下代码:

#include<stdio.h>
int main(){
	int a=0x123;
	printf("%d\n",a);
	return 0;
}

输出因该是什么?

输出的应该是291.

四、进制转化初步

### 1. x进制转10进制

任何x进制的数可以使用以下公式转换为十进制数:

\[
\text{{十进制结果}} = \sum \text{{(单个数字)} \times (\text{{基数}})^{\text{{位置}}}}
\]

其中“位置”是从右向左计数,从0开始。

#### 示例

将二进制`1101`转换为十进制:

\[
1 \times 2^3 + 1 \times 2^2 + 0 \times 2^1 + 1 \times 2^0 = 8 + 4 + 0 + 1 = 13
\]

### 2. 10进制转x进制

将一个十进制数转换为x进制通常可以通过以下步骤完成:

1. 将十进制数除以x,记录余数。
2. 将商继续除以x,再次记录余数。
3. 重复步骤2,直到商为0。
4. 将记录的余数反向排列,得到x进制的表示。

#### 示例

将十进制`13`转换为二进制:

1. \(13 \div 2 = 6\), 余数 = 1
2. \(6 \div 2 = 3\), 余数 = 0
3. \(3 \div 2 = 1\), 余数 = 1
4. \(1 \div 2 = 0\), 余数 = 1

所以二进制表示为:`1101`

这就是如何进行x进制到10进制和10进制到x进制的转换。

C++ 进制转化入门知识(1),夏驰和徐策带你从零开始学C语言,c++,C语言文章来源地址https://www.toymoban.com/news/detail-705866.html

到了这里,关于C++ 进制转化入门知识(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 从C语言到C++:C++入门知识(1)

    朋友们、伙计们,我们又见面了,本期来给大家解读一下有关C++语言的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏: C语言:从入门到精通 数据结构专栏: 数据结构 个  人  主  页 : stackY、   目录 前言: 1. 什么

    2024年02月07日
    浏览(58)
  • 【C++】入门基础知识详解(二)

    目录 一、内联函数 1、概念 2、特性 3、内联函数与宏的优缺点 二、auto(C++11)   1、auto 简介   2、auto的使用细则     2.1 auto与指针和引用结合起来使用     2.2 在同一行定义多个变量   3、auto不能推导的场景     3.1 auto 不能作为函数的参数     3.2 auto 不能直接用来声

    2024年02月11日
    浏览(39)
  • 【C++】入门基础知识详解(一)

    目录 一、C++ 二、命名空间   1、命名空间的定义   2、命名空间的使用 三、C++输入输出 四、缺省参数   1、缺省参数的概念   2、缺省参数的分类     2.1 全缺省参数     2.2 半缺省参数 我们在学习C++之前,我相信大家大多数都对C语言多多少少都有所了解,C语言的关键

    2024年02月12日
    浏览(54)
  • 【C++】入门C++前需要了解的小知识

    个人主页 : zxctsclrjjjcph 文章封面来自:艺术家–贤海林 如有转载请先通知 今天开始准备步入C++的大门,那么学习之前得先了解一下它的发展历史,和知道学好这门课程的重要性。 C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的 程序

    2024年01月21日
    浏览(77)
  • C++入门知识点——解决C语言不足

    😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️ 💥个人主页:🔥🔥🔥大魔王🔥🔥🔥 💥所属专栏:🔥魔王的修炼之路–C++🔥 如果你觉得这篇文章对你有帮助,请在文章结尾处留下你的 点赞 👍和 关注 💖,支持一下博主

    2024年02月12日
    浏览(48)
  • 【C++从入门到精通】第2篇:C++基础知识(中)

    本节,我们将更多地讨论在“Hello, World!”程序中使用的 std::cout 语句,将文本“Hello, World!”输出到控制台。我们还将探讨如何从用户获取输入,我们将使用这些使我们的程序更具交互性。 输入/输出库 (io 库)是处理基本输入和输出的C++标准库的一部分。我们将使用此库中的

    2024年02月07日
    浏览(45)
  • C++ 从零基础到入门(3)—— 函数基础知识

    目录 一、函数简介 1、函数的作用和目的 2、函数的基本概念 二、函数定义与声明 1、函数定义的语法和结构 2、函数原型 三、参数传递 1、值传递 2、引用传递 3、指针传递 4、参数传递的选择 5.引用传递与指针传递的区别 四、返回值 1、返回类型 2、返回语句 在 C++ 中,函数

    2024年01月21日
    浏览(50)
  • 【C++入门】学习使用二维数组基本知识及用法详解

    🧛‍♂️iecne个人主页: : iecne的学习日志 💡每天 关注 iecne的作品,一起进步 💪一起学习,必看iecne 🐳希望大家多多支持🥰一起进步呀! 二维数组就是在一维数组上多加一个维度。 建议:以下三种定义方式,利用第二种更加直观,提高代码可读性 第二种就是在定义一

    2024年01月25日
    浏览(55)
  • 【C++初阶】一、入门知识讲解(C++关键字、命名空间、C++输入&输出、缺省参数、函数重载)

    ========================================================================= 相关代码gitee自取 : C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 【数据结构初阶】十一、归并排序(比较排序)的讲解和实现 (递归版本 + 非递归版本 -- C语言实

    2024年02月05日
    浏览(52)
  • 【C++入门必备知识:|引用| +|auto关键字| + |范围for|】

    在这里插入图片描述 引用不是新定义一个变量,而是给已经存在的变量取别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存区间。 比如水浒传里的李逵 小名叫铁牛,江湖人称黑旋风。这些都是他,只不过名字不同。 类型 引用变量名=引用实体

    2023年04月22日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包