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 ...
随机推荐
- django-Views之常见的几种错误视图代码(三)
1.404 page not found(找不到对应的页面) 2.500 server error(服务器错误) 3.400 bad request(无效的请求) 4.403 HTTP forbidd ...
- Python 中用面向对象的思想处理网页翻页 (初级)
第一种处理方法: class Pagenation(object): """ 处理分页相关的代码 """ def __init__(self ...
- JavaScript设计模式(代理模式)
一.简单的单例模式: 1.未使用代理模式的情况:小明直接给女神送花 var Flower = function() {} var xiaoming = { sendFlower: function( ...
- python基础-字符串(str)类型及内置方法
字符串-str 用途:多用于记录描述性的内容 定义方法: # 可用'','''''',"","""""" 都可以用于定义 ...
- SAP SOAMANAGER报错原因与故障排除方法
一些刚刚接触到SAP Webservice的开发者由于对SAP Netweaver组件的不熟悉,往往在使用事物码SOAMANAGER进行webservice配置的时候,发现无法正常启动SOAMANAG ...
- 【java基础】为什么重写toString()方法?
不得不说,有很多java初学者写java实体类的时候,并没有真正理解重写toString() 方法,可能是口头知道也可能是跟风随带添加toString() 方法,并没有真正理解其意义,如果真要被问起来 ...
- 【实用工具】这些你不得不知道的chrome插件,让你事半功倍
平时chrome插件用多了,发现在工作中有很多插件特别好用,让你事半功倍.于是我抽时间整理了一些非常好用的chrome插件分享给大家,其中有些插件是我已经离不开,每天都在用的.希望这篇文章能帮助你找到 ...
- html5基本页面
html5基本页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- php pdo mysql存入转义
php pdo mysql存入转义 因为存入html都是自动转义 相当于PHP的htmlspecialchars 所以读取的时候要加htmlspecialchars_decode
- jdk 错误1316 指定账户已存在 与 jdk1.7安装和配置环境变量 与 jdk1.8与1.7版本的切换使用
问题: 安装JDK,提示错误信息:,指定的账号已存在. 原因: 安装JDK,相当于安装了一个软件,要使用系统的软件卸载功能卸载,不能只删除安装目录文件夹下的文件,如果只 ...