zoukankan      html  css  js  c++  java
  • 「学习笔记」进制转换

    前言

    学习下c语言以及相关的基础,最近会更新很基础的知识

    进制

    常用的进制分别为2进制、10进制(生活常用)、16进制

    进制间的关系表

    二进制 十进制 十六进制
    0 0 0
    1 1 1
    10 2 2
    11 3 3
    100 4 4
    101 5 5
    110 6 6
    111 7 7
    1000 8 8
    1001 9 9
    1010 10 A
    1011 11 B
    1100 12 C
    1101 13 D
    1110 14 E
    1111 15 F
    10000 16 10
    10001 17 11
    ... ... ...
    11111111 255 FF

    进制间的转换

    二进制转十进制

    1.简单方法适用于所有位上均为1的情况

    ​ 公式: result = 2^n -1

    ​ 说明:result为十进制结果,n为1的个数

    ​ 读作:2的n次方减1

    ​ 例:1111有4个1,那么就有 2^4 - 1 = 16 -1 = 15

    2.无符号按位加权:适用于无符号情况(c语言中int型默认有符号)

    ​ 二进制8位数,从右往左从0~7写位权​

    ​ 公式:result = n1x2^7 + n2x2^6 + n3x2^5 + n4x2^4 + n5x2^3 + n6x2^2 + n7x2^1 + n8x2^0

    ​ 说明:result为结果,n1~n8分别为二进制数第1到第8位数,2的位权次方

    ​ 读作: 每个二进制数位与2的位权次方之和

    ​ 举例:111的前五位均为0,那么乘后也为0,2的0次方为1省略不计算,

    1x2^2 + 1x2^1 + 1x2^0 = 4+2+1 = 7

    3.有符号按位加权:负数,符号位为1;非负数符号位为0

    其中符号位为0(正数)的情况下与上述方法完全相同。

    符号位为1的时候(负数),在计算第1位前乘-1

    ​ 公式:result = -n1x2^7 + n2x2^6 + n3x2^5 + n4x2^4 + n5x2^3 + n6x2^2 + n7x2^1 + n8x2^0

    ​ 举例:有符号10000000转十进制,首先是有符号并且符号位为1,说明是负数,则有

    -1x2^7 + 0x2^6 + 0x2^5 + 0x2^4 + 0x2^3 + 0x2^2 + 0x2^1 + 0x2^0 = -128

    十进制转二进制

    取余法

    1. 将十进制数进行多次除二,直到商为0,记录每次是否被整除,整除记0,不整除记1
    2. 将记下的数由下至上即可得到二进制数

    举例:十进制18,第一次整除记0,第二次不整除记1,第三次四次记0,最后一次记1,倒序就是10010

    二进制转16进制

    查表法

    一旦遇到很多二进制数,你就从右往左,每四个为一组

    一旦遇到十六进制数,把每个十六进制数拆解成 4 位二进制数

    Linux上转换进制

    1. 使用bc命令,需要安装bc
      • 命令:echo "obase=x;ibase=y;z" | bc
      • 说明:其中obase中的x为要转换成的进制用数字表示, ibase的y为当前输入进制数字,z为待转换数
    2. 使用((num=x#y))&& echo $num 转换十进制
      • 说明 x为进制数,y为输入数

    本文整理自小甲鱼的论坛,原贴见链接

  • 相关阅读:
    接口测试(基础知识)
    MapReduce的方式进行HBase向HDFS导入和导出
    HBase的JavaAPI操作
    Maven中settings.xml的配置项说明
    Eclipse使用Maven创建普通Java工程时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:RELEASE from any of the configured repositories.
    ip 子网掩码 网关 DNS
    IP地址,子网掩码、默认网关,DNS理论解释
    IP地址,子网掩码,默认网关,路由,形象生动阐述
    Hive的JDBC使用&并把JDBC放置后台运行
    Hive中自定义函数
  • 原文地址:https://www.cnblogs.com/hellxz/p/9738898.html
Copyright © 2011-2022 走看看