• c语言中关于进制的一二疑惑


    初学计算机的时候,总会接触到进制这个东西,然而各种进制转换又让人有些云里雾里。

    这里我的题目是c语言中的进制,是因为其他语言不熟。

    本文对于进制讲解以下几点:(高手请略过)

    1. 计算机中有进制吗?

    2.进制如何用?(只举例嵌入式了)

    1.计算机中有进制吗?(如果要加个语言做定语,那就是c语言)

    我觉得只有一种进制,就是二进制。

    滚,明明我写过10进制,8进制,还有16进制等等。可能有人要这么“骂”我了。

    其实你写的都是ASCII字符。(可见字符你才能看到,不可见字符你还看不到。)

    好了,不扯那么远了。

    根据计算机的原理,计算机中传输的是高低电平的电信号,计算机中确实只有二进制,硬盘中,内存中,cpu中,除了高低电平没有其他东西(其实还需要承载高低电平的物理器件了),而高低电平在人类世界中就表现为二进制0和1.

    这是去理解计算机的根本。

    而我们人类对于二进制的这种01又不是很敏感(要是一大串就眼花了),就衍生出10进制,16进制这些啦。

    总之,二进制之外的进制,都是为了方便人类阅读和使用的。如果只能用二进制,那简直不可想象。

    可能有人说,我明明写的不是二进制,凭什么说是二进制呢?

    因为你写的程序计算机并不能认识啊,还得经过编译,这不就把你写的东西转成了机器语言吗(这就是传说中的二进制了)。

    那又有人要说了,我能不能写个二进制的程序出来呢?

    当然可以写,但是你得首先有个这样的编译器才行,将你写的二进制翻译为机器语言(这里我要认为你写的二进制仍然是ASCII字符的0和1)。或者你懂机器指令才行。

    所以总结一下:

    计算机中的所有文件都是二进制,word,视频,音频,游戏,程序等等。

    可能又要问了,那系统怎么区分这些文件呢?这就是文件名后缀的重要性(windows下),系统根据文件名后缀使用不同的软件打开(将磁盘中的二进制呈现出来给人看)。如果后缀是错误的,打开的时候要么出错要么出现一些问题。

    在c程序中,你如果能从二进制的角度考虑的话,你会发现你给一个变量赋值这种笔试题就开始变得简单了。

    友情提醒:在计算机中负数保存的是补码!!!

    int a = -2;

    unsigned char c = a;

    求出c的值是多少?从二进制的角度理解就比较容易

    unsigned char a = 253; 

    char c = a ;

    c 的值是多少呢?

    2.进制如何用?

    嵌入式开发总是会涉及到每个位的值是0还是1,或者需要设置某个位为1或者0.

    这时候就不得不使用二进制和16进制的配合了。

    这里可能就是平常人觉得看10进制多舒服,一看就知道是多少(数值)。

    但是嵌入式程序员可能不是要知道这个数是多少,而是要知道某个位是0还是1,给你一个数123,你说第5位是0还是1,你能看出来吗?确实就不方便,然而转成16进制就比较好算出来了。

    这就是为啥嵌入式老是要用16进制,8进制等。(其他语言我不清楚)。

  • 相关阅读:
    使用git-flow来帮助管理git代码
    518. 零钱兑换 II -- 完全背包
    Linux 网络基本命令
    使用HTTPS模式建立高效爬虫IP服务器详细步骤
    使用DataSecurity Plus可以快速检测威胁并自动响应事件
    react,Chart
    【论文阅读】YOLO-World | 开集目标检测
    javaWeb监听器Listener(三)定时清理session
    含磷废水的处理方法
    清洁机器人--沿边测距传感器 sharp psd红外传感器的FOV角度分析
  • 原文地址:https://blog.csdn.net/zhaozhi0810/article/details/126503580