C语言:十进制进制转换为其他进制(思想:查表法)
//
// main.c
// Hex conversion
//
// Created by ma c on 15/7/22.
// Copyright (c) 2015年 bjsxt. All rights reserved.
// 要求:十进制向任意进制之间的转换(查表法)。
#include <stdio.h>
//十六进制的转换
void ToHex(int num)
{
int temp;
char chs[8];//定义一个临时容器,长度为8,8X4=32位比特
int pos=8; //定义一个索引
char ch[] = {'0','1','2','3',
'4','5','6','7',
'8','9','a','b',
'c','d','e','f'};
printf("%d的十六进制是:",num);
while(num!=0)
{
temp = num & 15;
chs[--pos]= ch[temp]; //将查表中的数据存放到临时容器中。
num = num >> 4; //向左移动次低四位
};
for(int x=pos;x<8;x++)
{
printf("%c",chs[x]);
}
printf("\n");
}
//八进制的转换
void ToOct(int num)
{
int temp;
char chs[11];//定义一个临时容器
int pos=11; //定义一个索引
char ch[] = {'0','1','2','3',
'4','5','6','7',
'8','9','a','b',
'c','d','e','f'};
printf("%d的八进制是:",num);
while(num!=0)
{
temp = num & 7;
chs[--pos]= ch[temp]; //将查表中的数据存放到临时容器中。
num = num >> 3; //向左移动次低三位
};
for(int x=pos;x<11;x++)
{
printf("%c",chs[x]);
}
printf("\n");
}
//二进制的转换
void ToBinary(int num)
{
int temp;
char chs[32];//定义一个临时容器
int pos=32; //定义一个索引
char ch[] = {'0','1','2','3',
'4','5','6','7',
'8','9','a','b',
'c','d','e','f'};
printf("%d的二进制是:",num);
while(num!=0)
{
temp = num & 1;
chs[--pos]= ch[temp]; //将查表中的数据存放到临时容器中。
num = num >> 1; //向左移动次低一位
};
for(int x=pos;x<32;x++)
{
printf("%c",chs[x]);
}
printf("\n");
}
int main(int argc, const char * argv[])
{
ToHex(60);
ToOct(60);
ToBinary(60);
printf("\n");
return 0;
}
C语言:十进制进制转换为其他进制(思想:查表法)的更多相关文章
- 16进制字符串和byte数组进行相互转换\将10进制转换为任意进制
16进制字符串和byte数组进行相互转换 简介 1个byte对应8个bit,16进制使用4个bit,所以一个byte转成16进制,占用两位. JAVA代码 private static final c ...
- 从M进制转换为N进制
/// <summary> /// 从M进制转换为N进制 /// </summary> internal class MBase2NBase { /// <summary ...
- Java 二维数组,排序、切换顺序,查表法二进制十进制,这班查找、排序(冒泡、选择)、遍历,获取最大小值(4)
Java 二维数组,排序.切换顺序,查表法二进制十进制,折半查找.排序(冒泡.选择).遍历,获取最大小值(4)
- 【C语言学习笔记】空间换时间,查表法的经典例子!知识就是这么学到的~
我们怎么衡量一个函数/代码块/算法的优劣呢?这需要从多个角度看待.本篇笔记我们先不考虑代码可读性.规范性.可移植性那些角度. 在我们嵌入式中,我们需要根据实际资源的情况来设计我们的代码.比如当我们能用 ...
- java学习进制转换之查表法
10进制转16进制,以及10进制转2进制,还有10进制转8进制,这些转换如果按照常规思路的话,会灰常的麻烦. 我们来看一下 10进制转16进制: 假如这里有一个十进制数字:35,我们的需求就是把这个3 ...
- 十进制和n进制的转换(10进制转换为36进制)
答案如下: void Convert() { map<int ,string> maps; maps[0]="0"; maps[1]="1"; ma ...
- lua之m进制转换为n进制-任意进制转换算法
够无聊的写这个,为防止需要的人也无聊一遍,写个吧 算法有n种,但是,咱们一种就够用了 --数组倒序排列 local function orderByDesc( input ) local output ...
- Java查表法实现十进制转化成其它进制
首先了解十进制转化成二级制的原理 156的二进制为: 156 % 2 = 78 …… 0 83 % 2 = 39 …… 0 39 % 2 = 19 …… 1 19 % 2 = 9 …… 1 9 % 2 ...
- YUV420查表法高效、无失真的转换为RGB32格式
YUV格式有两大类:planar和packed.planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V,这里所讲述的就是这中存储格式的:packed的YUV ...
随机推荐
- javascript 数据类型 变量 类型转换运算符
数据类型: 1.字符串(被双引号所包含的内容),小数,整数,日期时间,布尔型等. 2.变量: 都是通用类型的var, 定义一个变量格式:var a: 3.类型转换: 分为自动转换和强制转换,一般 ...
- The declared package does not match the expected package
The declared package does not match the expected package. 1.选中项目右击选择Build Path-->再选择Configure Bui ...
- 管理Sass项目文件结构
构建你的结构体系 CSS预处理器的特点之一是可以把你的代码分割成很多个文件,而且不会影响性能.这都要归功于Sass的@import命令,只要在你的开发环境下,你调用不管多少文件,最终将编译出一个CSS ...
- CSS3:过渡大全
代码 地址:http://jsbin.com/moquyesumi/edit?html,output <!DOCTYPE HTML> <html> <head> & ...
- 将request.getParameterMap()转换成可操作的普通Map
在java web项目中虽然可以通过request.getParameterMap()很轻松的获得参数Map,但得到的Map和普通Map是不一样的,是被锁定的,不能像操作常规Map那样进行put.ge ...
- Apache Spark源码走读之6 -- 存储子系统分析
欢迎转载,转载请注明出处,徽沪一郎. 楔子 Spark计算速度远胜于Hadoop的原因之一就在于中间结果是缓存在内存而不是直接写入到disk,本文尝试分析Spark中存储子系统的构成,并以数据写入和数 ...
- 返回指定的VC
for (UIViewController *controller in self.navigationController.viewControllers) { if ([co ...
- 状态模式 java && php
状态模式 java && php 状态模式 输入信号是事件:输出是状态结果,状态模式状态机就是一个黑盒子.状态模式主要突出了两个字:”改变”,对象的状态决定了状态的行为,事物的 ...
- 十 mybatis逆向工程
1 逆向工程 1.1 什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper. ...
- js 定时跳转, 格式化字符串时间
效果 1.js中将一字符串表示的系统时间转换为Date时间对象 //js中将一串字符串转换为date类型,主要是先过滤字符,然后分割开 function parseToDate(strTime) { ...