进制

进制以十进制为例 1234.5=110^3 + 210^2 + 310^1 + 410^0 + 5*10^-1 (按权展开求和)
○1 其它进制转十进制都是按权展开求和,比如十六进制 0x123=1 * 16^2 + 2 * 16^1 + 3 * 16^0

○2 十进制转其它进制:整数部分:基数除法,倒序取余。小数部分:基数乘法,顺序取整。

○3 十进制转二进制:除了上面的方法,还可以凑。如下图

○4 二进制转八进制:二进制从右往左三个三个分组,然后按权展开求和

○5 二进制转十六进制:二进制从右往左四个四个分组,然后按权展开求和,如下图 0xBD2F

○6 十进制转八,十六进制:先转二进制再转八或者十六进制

原码、反码、补码是计算机中对数字的二进制表示方法。

原码:将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。

反码:如果是正数,则表示方法和原码一样;如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。

补码:如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)。

○1 无符号整型数:所有的数位均表示数值;
N 位无符号整型数据表示的取值范围为:0~2^N-1 (2^N 表示 2 的 N 次方)

○2 有符号整型数:最高位 0 为正数,1 为负数
正数:原码,反码,补码三者相同;
负数:其绝对值的二进制,取反,再加一,如下图

○3 根据二进制计算数值,假设数字为 1 字节

无符号数全部为数值位,按权展开求和。
1010 1000->1 * 2^7 + 1 * 2^5 + 1 * 2^3=168
有符号数,先看符号位确定符号,0 为正数,1 为负数。
如果为正数则按权展开求和。0101 1000->1 * 2^6 + 1 * 2^4 + 1*2^3=88
如果为负数则先确定符号,然后取反加一计算它的绝对值。1110 0101


0的反码,补码都为0

整形数据类型:


char:-128~127 共 256 种不同的数字。
unsigned char:0~255。
int:不加说明为 4 字节。
注意数据的取值范围。

浮点类型:

float:从左往右第一位为符号位,接来下 8 位为指数位,最后 23 位为尾数位

符号位 p:0 为正,1 为负
指数 e:读取的指数=实际指数-127
尾数 m:不包含小数点左边的 1
比如 12.5f->1100.1->1.1001*2^3,则存储数据如下:

174-C语言入门(进制,补码,类型)相关推荐

  1. c语言输出16进制数转字符,(转)C语言16进制输出字符型变量问题

    最近在做一个C的嵌入式项目,发现在C语言中用printf()函数打印字符型变量时,如果想采用"%x"的格式将字符型变量值以十六进制形式打印出来,会出现一个小问题,如下: char  ...

  2. 16进制输出C语言字符常量,基础C语言:进制、常量

    基础C语言:进制.常量一.进制 1.什么叫进制 进制就是逢几进一,我们说N进制实际就是指逢N进一 (例,计算机只识别二进制:人类习惯使用的是十进制:为了实际需要又建立了八进制和十六进制) 2.不同进制 ...

  3. c语言中10转8和16的转换,(C语言)10进制转换2,8,16进制

    (C语言)10进制转换2,8,16进制 作者:vinseven #include"stdio.h" #include"conio.h" #include&quo ...

  4. 简单的C语言任意进制转换器

    简单的C语言任意进制转换器 该进制转换器可进行任意进制转换,请看效果图: 代码 /** ******函数声明******进制函数,输入与输出 void main();******返回将n进制num转换 ...

  5. 02.02、3_Java语言基础(进制概述和二,八,十六进制图解)

    ###02.02_Java语言基础(进制概述和二,八,十六进制图解)(了解) * A:什么是进制     * 进制:就是进位制,是人们规定的一种进位方法. 对于任何一种进制--X进制,就表示某一位置上 ...

  6. 进制+补码+位运算+算法

    进制+补码+位运算+算法 张明阳 1.简述进制的定义以及进制的重要性 N进制就是逢n进一 学习进制有助于学习汇编等底层知识,同时有助于学习补码和位运算等知识 2.简述十进制与r进制之间的转化,以及二进 ...

  7. C语言 10进制 以8进制和16进制显示, #处理显示前导符

    C语言 10进制 以8进制和16进制显示, #处理显示前导符 #include<stdio.h> void main() {int a=20,b=30;int c=a+b;printf(& ...

  8. C++将16进制补码转换为十进制数

    好多年没更新了,工作后的第一个更新. 言归正传,前几天碰上一个小问题,简单地说就是将核对给机械臂的发的运动指令是否正确,但指令码是16进制补码,看得云里雾里,用自带的计算器发现,并没有将负数的补码转成 ...

  9. C语言笔记-进制转换

    一.进制转换     为什么要使用二进制.八进制.十进制.十六进制         因为现在的CPU只能识别高低电平,只能对二进制数据进行计算         虽然二进制的数据可以直接被CPU识别计算 ...

最新文章

  1. 如何有效地进行代码 Review?
  2. django_form校验
  3. c#泛型作为返回类型的写法
  4. linux 使用gzip压缩打包的文件,linux常用的解压,压缩,打包
  5. LeetCode 723. 粉碎糖果(模拟)
  6. UIControl UIImage
  7. CentOs7相对于CentOs6的常用命令变化
  8. Qt——P13 Q4版本信号槽连接
  9. 性能测试--JMeter性能测试工具(简介,环境搭建,环境变量,基本按钮等基本介绍)【2】
  10. c语言课本答案解析宋士银,c语言教材
  11. 五阶段--使用 Kibana 操作 ES/ 搜索
  12. 中国移动短信中心服务中心号码一览表
  13. 固态硬盘数据如何恢复
  14. AI三大主义:符号主义、联结主义、行为主义
  15. ps复制选中的图层为新图层
  16. 什么是Java的序列化?
  17. 抽奖机(用随机数)2.0-python
  18. 2021-2027全球与中国冰球护具市场现状及未来发展趋势
  19. 开发实训10---Android---注册登录功能实现1
  20. ThumbnailUtils.extractThumbnail Android图片缩略图显示总结及比较

热门文章

  1. 【模拟赛】2019 蓝桥杯省赛 A 组模拟赛(一)
  2. 统计二叉树的叶子节点个数
  3. java ygc 频繁_jvm之判断ygc耗时和频率
  4. VS中MD和MT的区别
  5. 论相对性原理2-洛仑兹坐标变换的数学原理
  6. AirPods 无法连接到iPhone、iPad或Mac的解决办法
  7. 中国驻越南大使馆当地有关部门联系电话
  8. NANDCONT, ECC , RnB(nandflash更加深入的内容--1)
  9. 智慧交通引领不一样的未来出行
  10. 【OpenStack】在OpenStack上搭建OpenStack UT环境