进制间转换

摘要:
0.25→ 0.01 0.25*2=0.5舍入为0↓ 0.5*2=1.0舍入为1二进制到十进制:从右侧第0位乘以2的幂,忽略二进制中的数字0。

1.进制间转换
  十进制转二进制:十进制的数一直除以2,直到商为0,结果为逆序的每个余数。("除2取余,逆序排列"法,十进制转八、十六进制同理)

    16(10)→10000(2)

      进制间转换第1张


  十进制小数转二进制小数:小数一直乘以2,直到小数部分为0,结果为顺序的每个整数部分。("乘2取整,顺序排列"法)

    0.25(10)→0.01(2)

      0.25*2=0.5  取整是0    
      0.5*2=1.0    取整是1


  二进制转十进制:从右边第0位开始乘以2的位数次幂,二进制中为0的数忽略不计。

    101(2)→1*2^2+0+1*2^0=5(10)

  八进制转二进制转十进制(十六进制转二进制转十进制同理)

    3 4(8)

     ↓ 

    011 100(2)
     ↓

    28(10)

2.计算机存储空间是以8位1字节,内存以补码的形式存储。

    进制间转换第2张

3.关键字

  由字母、数字、下划线组成,不能数字开头。

4.类型转换

  显示转换:(int)a  (int)2.5→2      通常发生在高精转低精,损精。

  隐式(自动)转换:通常发生在低精转高精,赋值号右边类型将转换为左边类型;

                               同在赋值号右边将按高位看齐,char→int→unsigned→long→float→double(低→高精度转移)。

5.注意问题
(1)7%-4 → 3,-7%4 → -3
(2)负号的优先级高于减号。负号与自增、自减同在,优先级按右结合。
main()
{
 int i=8;
 printf("%d ",++i);
 printf("%d ",--i);
 printf("%d ",i++);
 printf("%d ",i--);
 printf("%d ",-i++);
 printf("%d ",-i--);
 printf("%d ",i);
}
输出结果:9 8 8 9 -8 -9 8
i的初值为8
第二行i加1后故输出9
第三行i减1后故输出8
第四行输出i为8后再加1(为9)
第五行输出i为9后再减1(为8)
第六行输出-8后再加1(为9)
第七行输出-9后再减1(为8)
最后输出8
(3)j=5;q=(++j)+(++j)+(++j);→j=8,q=24
(4).
8进制:正负号开头,0为第一位
16进制:正负号开头,0x为前2位
(5) i+++j→(i++)+j
(6) x*=y+7→x=x*(y+7)

(7) int z = sizeof(float);

(8) printf("%0.0f ",0.55f);   →  1(浮点类型的显示的最后一位会四舍五入)

免责声明:文章转载自《进制间转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇开源库持续搜集更新中。。。15分钟让你了解如何实现并发中的Barrier下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python浮点数(小数)运算误差的原因和解决办法

原因解释:浮点数(小数)在计算机中实际是以二进制存储的,并不精确。比如0.1是十进制,转换为二进制后就是一个无限循环的数:0.00011001100110011001100110011001100110011001100110011001100python是以双精度(64bit)来保存浮点数的,后面多余的会被砍掉,所以在电脑上实际保存的已经小于0.1的值了...

基于JT808协议的自动化测试----解析二进制数据

思路: 本文运用python3中的bitstring库来解析二进制数据 一. 按bit位来解析二进制数据 1.1 协议说明 1.2 解析代码 # -*- coding: utf-8 -*- # @Time : 2021/4/22 17:15 # @Author : chinablue # @File : tmp0422.py import...

WEB开发中的字符集和编码

引言 我相信很多人在初接触编程时,都被字符集狠狠地虐过,特别是数据库的中文乱码问题,那么乱码是怎么产生的呢? 我们都知道计算机是以二进制存储和运行的,那么它是怎么把二进制数据转换为各种文字的呢? 还有我们常用的各种字符集,常用的编码转换,都是怎么进行的呢? 本博文所写的内容不是技术干货,只是对我们常用的字符集和编码的一个小总结,小科普。我相信读完本文,您应...

Java动手实验及课后程序

课后作业 一、编写程序,消息框显示计算结果 设计思想:导入Scanner包,使用JOptionPane类来实现消息框的输入和结果的显示。 程序代码: package com; import java.util.Scanner; //导入Scanner包 import javax.swing.JOptionPane; public class Manner ...

20文件

  1. 文件的概念 1.1 文件的概念和作用 计算机的 文件, 就是存储在某种 长期储存设备 上的一段 数据 长期储存设备包括: 硬盘,U盘,移动硬盘,光盘... 文件的作用 将数据长期保持下来, 在需要的时候使用 1.2 文件的储存方式 在计算机中, 文件是以 二进制 的方式保持在磁盘上的 文本文件和二进制文件 文本文件 可以使用 文本编辑软...

打印 PRINT

打印 PRINT 字符串和数值类型 可以直接输出。 print(1) #out:1 print('a') #out:a 变量 无论什么类型,数值,字符串,列表,字典...都可以直接输出 n = 1 s = 'a' list_a = [1,3,4] dict_c = {'a':3,'b':4} print(n) #...