C语言之进制
进制
一种计数的方式.侧重点在于计数的时候是逢多少进一.
1) C语言可以识别的进制
- 二进制
每一位. 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0
在C语言中,写一个二进制的数的方式就是在前面加一个 0b或者0B的前缀,二进制每一位是0或者1,逢2进1;
2. 八进制
每一位. 0 1 2 3 4 5 6 7 10 11
在C语言中,写一个八进制的数的方式就是在前面加一个 0的前缀,逢8进1;
%o 将整型变量中得数据以八进制的形式输出
3. 十进制
每一位. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
在C语言中直接写1个整数,那么默认就是十进制,逢10进1;
%d 将整型变量中得数据以十进制的形式输出
4. 十六进制
每一位. 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12
在C语言中,写一个十六进制的数的方式就是在前面加一个 0x或者0X的前缀,逢16进1;
%x 将整型变量中得数据以八进制的形式输出
2).进制之间的转换
a. 基本概念
数码: 指的是这个数据的每一位的数字.
数位: 数码在这个数中的位置.从右到左.依次递增从 0 开始.
基数: 就是每一个数码可以有多少个数据来表示.
(基数其实指的就是这个数的进制).
位权: 数码乘以(基数的数位次方)
任何数的0次方都为1.
b. 十进制转换为二进制
除2取余法. 将这个数除以2. 直到商为1或者0. 然后最后1个商和所有余数倒序. 就是这个十进制对应的二进制.
例:
10 的二进制是 1010
178 的二进制是10110010
c. 二进制转换为十进制
加权法:将这个二进制数的每个数码的位权相加,就是这个二进制对应的十进制.
10101 每1个数码的位权相加.
第0位的位权: 1 * 2的0次方 1
1 * 0
2 * 4
3 * 0
4 * 16
d. 十进制转换为八进制
除8取余(与十进制转换为二进制方法类似)
e. 八进制转换为十进制
加权法:将八进制的每1个数码的位权相加 得到的就是其对应的十进制数.
0342
第0位: 2 * 8的0次方 2
1 4 * 8的1 32
2 3 * 8的2 192
f. 二进制转换为八进制.
三合一法则:将这个二进制从低位到高位每三位分成1组.高位不够补0将每1组转换为十进制.最后将每1组的十进制连起来. 就是这个二进制对应的八进制.
001 011 100 110 011
1 3 4 6 3
g. 八进制转换为二进制.
一拆三:将这个八进制数的没1个数码拆为1个三位的二进制数.把这些二进制数连起来.
134674
001 011 100 110 111 100
h. 二进制转换为十六进制.
四合一法则:将这个二进制从低位到高位每四位分成1组.高位不够补0
将每1组转换为对应的十六进制.最后将每1组转换成功的十六进制数链接起来.
11100101010111110111101010101
0001 1100 1010 1011 1110 1111 0101 0101
1 c a b e f 5 5
k. 十六进制转换为二进制.
一拆四法则:将这个十六进制的书的每1个数码拆为1个四位的二进制数,将其连起来.
4dea761;
0100 1101 1110 1010 0111 0110 0001
C语言之进制的更多相关文章
- java语言基础-进制
一丶Java语言基础:进制 1.进制的四种表现形式 (1).二进制:0,1 满2进1. (2).八进制0-7 :满8进1,用0开头表示. (3).十进制:0-9 满10进1. (4).十六进制:0-9 ...
- C语言中进制知识总结
1.什么是进制 进制是一种计数的方式,常用的有二进制.八进制.十进制.十六进制.任何数据在计算机内存中都是以二进制的形式存放的. 我对进制的个人理解,二进制数是以2为计算单元,满2进1位的数:八进制数 ...
- 新手第一天学习 C#语言(进制互换)
说起来我们对一些陌生或者未知的东西有一些恐惧感,但是又有一些期待,虽然我不确定自己能不能学会这门语言,但是我会尽自己最大的努力学. 我们第一天学的的内容呢,对大多数的人都知道,计算机的语言是二进制,但 ...
- 一起talk C栗子吧(第七回:C语言实例--进制转换)
各位看官们.大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是生成随机数的样例.这一回咱们说的 ...
- C语言下进制的使用
进制规则 十进制 以正常数字1-9开头,如123 八进制 以数字0开头,如0123 十六进制 以0x开头,如0X123 二进制 C语言不能直接书写二进制数 案例如下 int main() { int ...
- C语言基础--进制
进制表示: // 1.默认就是10进制 ; // 2.在前面加上一个0就代表八进制 ; // %d是以十进制的方式输出一个整数 printf("%d\n", num1); // % ...
- C语言实现进制转换
#include<stdio.h> int main() { char ku[16]={'0','1','2','3','4','5','6','7','8','9','A','B ...
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏
二进制:以0b开头,只有0和1两种数字.如0101 十进制:0~9十个数字表示.如25 十六进制:以0~9,A~F表示,以0X开头.如0X2B 十进制转换为X进制:连除倒取余 X进制转换为十进制:按权 ...
- 【学习笔记】【C语言】进制
1. 什么是进制 是一种计数的方式,数值的表示形式 2. 二进制 1> 特点:只有0和1,逢2进1 2> 书写格式:0b或者0b开头 3> 使用场合:二进制指令\二进制文件,变量在内 ...
随机推荐
- Python 2.7.3 urllib2.urlopen 获取网页出现乱码解决方案
出现乱码的原因是,网页服务端有bug,它硬性使用使用某种特定的编码方案,而并没有按照客户端的请求头的编码要求来发送编码. 解决方案:使用chardet来猜测网页编码. 1.去chardet官网下载ch ...
- js 实现自动换行
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Linux下使用Photorec恢复误格U盘
photorec包含在testdisk软件包中, 所以直接通过包管理器直接安装testdisk安装即可. 使用root权限来运行软件,在终端键入 [shell] photorec [/shell] 然 ...
- HDU 2064 汉诺塔III
汉诺塔III Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- leetcode[71] Sqrt(x)
题目,就是实现一个开方,返回是整数.int sqrt(int x) 用二分法,因为一个数的开方肯定小于 x/2 + 1, 因为小于5的某些数的开方并不一定比x/2小,所以要+1,那么们定义一个left ...
- android ListView隐藏FooterView(headerView)
安卓开发.正在使用listView时间,我们经常使用的footerView要么headerView 给ListView添加footer和header很多时间.它会基于隐藏和显示的情况下. 因为foot ...
- 如何使用OPENQUERY访问另一个SQL Server
原文:如何使用OPENQUERY访问另一个SQL Server 在项目中,经常会遇到一个数据库访问另一个数据库,[CNVFERPDB]为服务器名,[CE3]为库名 SELECT Dtl.* FROM ...
- 【jar包】Android——eclipse共享library以及导出jar包
android的apk在在eclipse上进行开发的时候,有时候需要import其它包中的一些class,正常的方法就是在java build path中library 中添加 jar 包! 转载注明 ...
- Google Dataflow
十分钟了解分布式计算:Google Dataflow 介绍 Google Cloud Dataflow是一种构建.管理和优化复杂数据处理流水线的方法,集成了许多内部技术,如用于数据高效并行化处理的Fl ...
- String的使用
String的常用方法 方法 说明 Anchor() 创建html锚 Concat() 把字符串连接起来 indexOf() 查找字符出现的位置 lastIndexOf() 查找最后出现字符 char ...