更快地进行进制转换

更快地进行进制转换

本文主要针对二进制,八进制,十进制,十六进制中的一些转换提供一些技巧和思路,以加快进制转换的手算及心算速度.

十进制转换成其他进制

这里我举一个37.625(十进制)转换为二进制的例子来说明计算方法

分成两个步骤

步骤1

打表,以1为基础,向左不断乘以2,向右不断除以2

得出32 16 8 4 2 1 0.5 0.25 0.125 的表

步骤2

根据步骤1打出的表,每次取表中最大的数来进行减法运算,如果能被最大的数减去(结果大于等于0即能被减去)那么就减去该最大数,然后不断循环,只到结果为0.

其全部过程由下图所示

最后填上小数部分,可得结果为100101.101

这是二进制的,如果是十六进制的那么起打表为 256 16 1 1/16, 八进制的则为 64 8 1 1/8

打出的表可以根据需要调整长度,然后再根据步骤2进行运算即可.

这里可以类比推广到十进制转换成任意进制,不再赘述.

二进制转换为十六进制

再次以刚刚的数为例子100101.101 转换为十六进制

二进制转换为八进制

其过程与前面的‘二进制转换为十六进制‘方法相同,只不过八进制是以3个二进制数为一组

总结

二进制中128 64 32 16 8 4 2 1的表需要牢记,就可以足够应付心算255之内的数

原文地址:https://www.cnblogs.com/virgildevil/p/12368327.html

时间: 2024-07-31 03:39:26

更快地进行进制转换的相关文章

使用JavaScript进行进制转换

JS 是一个很神奇的语言,内制的的很多函数可以帮我们进行数(进)制转换: JS中可以直接使用16进制: var a = 0xff; //255 将任意进制字符串转换为十进制,如二进制,八进制,十六进制, 第二数数不写即为最常用的转换为整型十进制: parseInt("11", 2);   // 3   2进制转10进制 parseInt("77", 8);   // 63  8进制转10进制 parseInt("af", 16);  //175 

九度OJ题目1080:进制转换(java)使用BigInteger进行进制转换

题目描述: 将M进制的数X转换为N进制的数输出. 输入: 输入的第一行包括两个整数:M和N(2<=M,N<=36). 下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出. 输出: 输出X的N进制表示的数. 样例输入: 16 10 F 样例输出: 15 提示: 输入时字母部分为大写,输出时为小写,并且有大数据. package a; import java.math.BigInteger; import java.util.*; public class Mai

python如何用format进行进制转换与如何删除进制前缀

10进行十进制,十六进制,八进制,二进制的转换:(#:保留进制前缀)对于带着进制前缀的,如"0x"“0o”“0b”,可以直接在后面加上’x’‘o’'b’进行删除:其他的一些小技巧:format(num, ",")快速分割千分位数字是补全多少位,^居中 >右对齐 <左对齐*^10Unexpected text node: '&ThickSpace;'Unexpected text node: '&ThickSpace;'?一共10位,居中,

lqb 基础练习 十六进制转八进制 (字符串进行进制转化)

基础练习 十六进制转八进制 时间限制:1.0s   内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000. 输出格式 输出n行,每行为输入对应的八进制正整数. [注意] 输入的十六进制数不会有前导0,比如012A. 输出的八进制数也不能有前导0. 样例输入 2 39 123ABC

Oracle通过函数进行进制转化

十六进制转化为十进制:to_number() SQL> select to_number('a','x') from dual; TO_NUMBER('A','X') ------------------                 10 十进制转化为十六进制:to_char() SQL> select to_char(10,'xxx') from dual; TO_CHAR(10,' ------------    a 二进制没有办法直接转化可以通过函数实现: 十进制转化为二进制 CRE

shell进制转换

使用 Shell 运算进行进制转换 假定在您的脚本中有一些数字,您需要以另外的进制处理这些数字.使用 Shell 运算可以很容易地自动实现这类转换.一种情况是使用 Shell 运算把一个数字从给定的进制转换位十进制.如果数字以运算展开式的形式提供,那么假定它带有十进制符号,除非 它前面带有 0(这种情况假定是八进制)或 0x(这种情况假定是十六进制).键入以下内容以得到一些八进制和十六进制值的十进制输出: $ echo $((013)) $ echo $((0xA4)) 您还可以使用以下格式指定

js中进制转换

利用javascript进行进制转换的方法 今天在做网站时用到了进制的转换,于是在网上搜索,发现可以直接利用javascript的toString()方法和parseInt()方法进行十进制和其他进制之间的转换,这里对他们的用法进行一下整理. toString()方法:将十进制数转换成其他进制数 parseInt()方法:将其他进制数转换成十进制数 <script language="javascript" type="text/javascript">

利用java中的BigInteger实现进制转换

[原创] java中的进制BigInteger十分的强大,而且好用,他可以表示任意大的整数,同时还可以进行进制转换,十分的方便, 代码示例: 1 package com.jiajia.demo_1; 2 import java.math.BigInteger;//导入该包 3 public class Demo { 4 public static void main(String[] args) { 5 String str = new BigInteger("15", 10).toS

一起talk C栗子吧(第七回:C语言实例--进制转换)

各位看官们.大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是生成随机数的样例.这一回咱们说的样例是:进制转换.说到进制预计大家 都不陌生.计算机中的进制有二进制.八进制,十进制,十六进制. 今天咱们将要说的是十进制怎样转换成二进制.八进制和十六进制.在这里我把敲代码的步骤和算法思路 写出来供大家參考. 1.获取用户想要转换的数值和想到转换的进制.这里要检查输入是否正确.这是程序健壮性的体现