2019-04-01 【OK】C高阶:进制

1. 进制

百度百科:
进制也就是进位计数制,是人为定义的带进位的计数方法,对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制是逢二进一,以此类推,x进制就是逢x进位。

  • 基数与权

基数是计数值制所用到的数字符号的个数,在基数为R的计数制中包含0 1 2...R-1,共R个数字符号。进位规律是逢R进一,称为R进制位权是指在一种进位计数制表示的数中,用来表示不同数位上数值的大小的一个固定常数,不同的数位有不同的位权,某一个数位的数值等于这一位的数字符号乘上该数的位权。例如:
[图片上传失败...(image-176779-1554126211223)]

2. 转换

十进制转换成R进制用短除法,电脑的计算器通常具有进制转化功能。

3. 运算

No. 进制 数码 进位条件
1 二进制 01 逢二进一
2 八进制 01234567 逢八进一
3 十进制 0123456789 逢十进一
4 十六进制 0123456789ABCDEF 逢十六进一

ASCII码就是被普遍采用的一个英文字符信息编码方案,它用8位二进制数表示各种字母和符号

  1. 人类为什么使用十进制?

  2. 计算机为什么使用二进制、八进制、十六进制?

    1. 实现容易:电路中的状态容易表示01(开与关、亮与灭、高与低)。
    2. 可靠性高:01两个数字传输和处理不易出错。
    3. 运算简单:与十进制数相比,二进制数的运算规则要简单。
    4. 适合逻辑:01与逻辑代数中的真和假相吻合。
    5. 易于转换:二进制与十进制数易于互相转换。

    由于二进制数据的基数较小,所以二进制数据的书写和阅读不方便。
    每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。
    由于二进制数在使用中位数太长,不容易记忆,所以又提出了十六进制数。

  3. 其他进制(7进制、60进制、24进制、30进制、365进制)

  4. 小数有二进制吗?

中国古代的十六进制?--半斤八两

image

4. C语言中的进制

4.1 进制常量表示

C语言不能直接表示二进制常量。八进制数字以0开头,十六进制数字以0x0X开头。

十进制 八进制 十六进制 十进制 八进制 十六进制
0 0 0 16 020 0x10
1 01 0x1 17 021 0x11
2 02 0x2 18 022 0x12
3 03 0x3 19 023 0x13
4 04 0x4 20 024 0x14
5 05 0x5 21 025 0x15
6 06 0x6 22 026 0x16
7 07 0x7 23 027 0x17
8 010 0x8 24 030 0x18
9 011 0x9 25 031 0x19
10 012 0xa 26 032 0x1a
11 013 0xb 27 033 0x1b
12 014 0xc 28 034 0x1c
13 015 0xd 29 035 0x1d
14 016 0xe 30 036 0x1e
15 017 0xf 31 037 0x1f
  • 试一试

    int a = 08;
    int b = 09;
    printf("%o%o",a,b);
    
    

4.2 输入输入

4.2.1 进制打印

打印32以内的十进制、八进制、十六进制对应表。

for(int i=0;i<32;++i){
    printf("%d\t%#o\t%#x\n",i,i,i);
}

进制的输出其实与字符输出是一样的,根据占位符的不同输出不同。

char a = 'a';
printf("%c\t%d\t%#o\t%#x\n",a,a,a);

4.2.1 输入进制数据

int n;
scanf("%o",&n);
printf("%d\n",n);
scanf("%x",&n);
printf("%d\n",n);
scanf("%d",&n);
printf("%d\n",n);
scanf("%i",&n);
printf("%d\n",n);

小礼物走一走,来简书关注我

作者:jdzhangxin
链接:https://www.jianshu.com/p/1e131c346387
侵删。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 1. 进制 百度百科:进制也就是进位计数制,是人为定义的带进位的计数方法,对于任何一种进制---X进制,就表示每一...
    jdzhangxin阅读 796评论 0 0
  • 十进制--->二进制 对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次...
    张轻舟阅读 910评论 1 3
  • 网站乱码问题我们会经常碰到,大多见于非英文的中文字符或其他字符乱码,而且,这类问题常常是因为编码方式问题,主要原因...
    波段顶底阅读 2,852评论 1 9
  • # 数据存储和进制转化 标签(空格分隔): 基础知识 --- 传统的计算机都是基于冯诺依曼体系,用集成电路中二极管...
    robinguo2012阅读 1,498评论 0 0
  • 进制基本概念 什么是进制?进制是一种计数的方式,数值的表示形式 常见的进制十进制、二进制、八进制、十六进制 进制书...
    极客江南阅读 2,008评论 0 11