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进制等。(其他语言我不清楚)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大智兄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值