C语言基础——进制转换 / 数据表示
第一部分:进制转换
二进制:由0~1构成,逢2进1
八进制:由0~7构成,逢8进1
十六进制:由0~9、A~F构成,逢16进1
两个基本概念
基数:n进制基数为n
123.4 = 1*10^2 + 2*10^1 + 3*10^0 + 4*10^-1
位权:
小数点左边第k位位权为 基数^k-1
小数点右边第k位位权为 基数^-k
其他进制转十进制(按权展开求和法)
十进制 123.4 = 1*10^2 + 2*10^1 + 3*10^0 + 4*10^-1
二进制 1011.1 = 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 + 1*2^-1= 11.5
八进制 123.4 = 1*8^2 + 2*8^1 + 3*8^0 + 4*8^-1= 83.5
十六进制 123.4 = 1*16^2 + 2*16^1 + 3*16^0 + 4*16^-1 = 291.25
十进制转其他进制
整数部分 :基数除法,倒序取余
小数部分 :基数乘法,顺序取整
十进制 - > 二进制
整数 除2倒序取余 (以4位为单位,不足高位补0)
小数 乘2正序取整 (遇到整数取1,小数再乘2)
其他进制间相互转换
- 二进制转八进制(3位二进制 = 1位八进制 对应“421”)
0101 1010 == 132
000=0 100=4
001=1 101=5
010=2 110=6
011=3 111=7
- 二进制转十六进制(4位二进制 = 1位十六进制 对应“8421”)
0101 1010 == 5A
0000=0 1000=8
0001=1 1001=9
0010=2 1010=A
0011=3 1011=B
0100=4 1100=C
0101=5 1101=D
0110=6 1110=E
0111=7 1111=F
第二部分:数据表示
整形数据的分类
1.无符号整型数据:所有位均表示大小。
N位无符号整型数据表示的取值范围为:0~2N-1
2.带符号整型数据:最高位表示符号:0为正、1为负。常用原码、反码、补码表示。
正数:三码同一。
例:已知x=+76D ,写出x的三码表示(8位)
解:x=+76D=+1001100B
因为x>0
所以:[x]原=[x]反=[x]补=01001100B
负数:
例1:已知x= -76D ,写出x的三码表示(8位)
解:x= -76D= -1001100B
[x]原=1 1001100B
[x]反=1 0110011B (原码取反)
[x]补=1 0110100B (末位加一)
例2:已知:[x]原=[y]反=[z]补=1100 1011B,求出x、y、z的大小关系。
[x]原=1100 1011B x = -100 1011B
[y]反=1100 1011B
[y]原=1011 0100B y = -011 0100B
[z]补=1011 0100B
[z]原=1100 1100B z = -100 1100B
y > x > z
C语言基础——进制转换 / 数据表示的更多相关文章
- 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进制转换为十进制:按权 ...
- 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符
02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...
- java语言基础-进制
一丶Java语言基础:进制 1.进制的四种表现形式 (1).二进制:0,1 满2进1. (2).八进制0-7 :满8进1,用0开头表示. (3).十进制:0-9 满10进1. (4).十六进制:0-9 ...
- Java基础-进制转换
Java基础-进制转换 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Java 程序中常用的进制 1>.十进制,由“0123456789” 这10个数字组成,逢十进一: ...
- 一起talk C栗子吧(第七回:C语言实例--进制转换)
各位看官们.大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是生成随机数的样例.这一回咱们说的 ...
- C语言基础--进制
进制表示: // 1.默认就是10进制 ; // 2.在前面加上一个0就代表八进制 ; // %d是以十进制的方式输出一个整数 printf("%d\n", num1); // % ...
- C语言实现进制转换——超图面试题
递归:递归的原理,就是自己调用自己本身.存在一个顺序的问题,如果在递归前的是顺序执行,递归后的是逆序执行,如下: void gogogo() { //递归之前 gogogo(); //递归之后 } 递 ...
- C语言关于进制转换,补码, 整数的位操作
菜单导航: 1.二进制.八进制.十进制.十六进制的相互转换 2.原码.反码.补码 3.举例证明整数在计算机内是以补码的形式存在(以负数为例) 4.整数的位操作:按位且&.或|.异或^.取反~ ...
- C语言实现进制转换
#include<stdio.h> int main() { char ku[16]={'0','1','2','3','4','5','6','7','8','9','A','B ...
随机推荐
- 数据结构(四十四)交换排序(1.冒泡排序(O(n²))2.快速排序(O(nlogn))))
一.交换排序的定义 利用交换数据元素的位置进行排序的方法称为交换排序.常用的交换排序方法有冒泡排序和快速排序算法.快速排序算法是一种分区交换排序算法. 二.冒泡排序 1.冒泡排序的定义 冒泡排序(Bu ...
- django-模板之if语句(九)
- 数字麦克风PDM信号采集与STM32 I2S接口应用(三)
本文是数字麦克风笔记文章的数据处理篇. 读取数字麦克风的信号,需要嵌入式驱动和PC应用的结合,驱动负责信号采集,应用代码负责声音分析. 一般而言,在完成特征分析和实验之后,把优化过的代码固化到嵌入式端 ...
- postman的监控接口响应时间monitor
Monitor简介1.是基于Postman集合API的灵活监控 2.监控API的正常运行时间.响应能力和正确性 3.提供监测结果的详细报告 4.对所有Postman用户每月提供1000个免费的监控请求 ...
- 爬取bing背景图片
因为工作环境的原因,没办法用梯子,也不喜欢用某度,只能用bing,发现背景图片蛮好看的,刚好最近在学习摄影,需要提高审美,就想着把bing背景图片都爬去下来做桌面背景.写的代码比较入门,只是做个记录, ...
- [考试反思]0719NOIP模拟测试6 + 0722NOIP模拟测试7
连续爆炸,颇为愉快. 第6次:Rank #4 第7次:Rank #9 对于第6次考试,个人比较满意,因为T1只是差了一个卡常. 因为在考试前两天刚讲了矩阵,满脑子都是矩阵,还想到了循环矩阵优化. 整个 ...
- 欧拉路&&欧拉回路
T1是欧拉路板子,但我不会,直接爆炸.. 这玩意就是个dfs,但我以前一直以为欧拉路只能$O(nm)$求 今天才知道可以$O(n+m)$ 欧拉路判定: 无向:起点终点为奇度点,其余偶度 有向:起点终点 ...
- Linux修改主机名!(图文)
本篇作为之前的补充篇,如果想修改自己的主机名,方便老师检查作业是否是自己做的,可以用修改主机名的方法,那么怎么修改呢? 一. 使用hostname命令 比如我现在的主机名是haozhikuan-hbz ...
- Python基本数据结构之文件操作
用word操作一个文件的流程如下: 1.找到文件,双击打开 2.读或修改 3.保存&关闭 用python操作文件也差不多: f=open(filename) # 打开文件 f.write(&q ...
- m96-97 lsc nc赛
这一次 lsc 再一次一道题都没AC,看来lsc已经凉了! 出了分,旁边的_LH大喊了一声 “woc,lsc,你真是太垃圾!”...........“好吧!” 我确实很垃圾!(大佬这次都没考,所以我更 ...