好久没有写过C++代码了。
看到以前课本上有这样一道题:打印整数1到156的二进制、八进制、十六进制和十进制对照表。
很基础的知识,权当温习下知识。
代码如下:
/*********************************************
* Author: finux
* Time: Sat 20 Sep 2008 02:25:03 PM CST
* Filename: main.cpp
* Description: 打印整数1到156的二进制、八进制、
* 十六进制和十进制对照表
*********************************************/
#include <iostream>
#include <iomanip>
using namespace std;
#define SIZE 16
// 返回0-15范围的整数对应的字符
char getChar(int a) {
if (a > 9) {
return static_cast<char>('A' + a - 10);
}
return static_cast<char>(a + '1' - 1);
}
//dec 十进制
//other 2, 8, 或者16
//s 字符串数组的地址
char* convert(int dec, int other, char* s) {
int base = other;
int size = 1;
while (dec/base != 0) {
base *= other;
size++;
}
base /= other;
int i = 0;
for (; i<size; i++) {
if (dec == 0) {
*(s+i) = '0';
} else {
*(s+i) = getChar(dec/base);
}
dec %= base;
base /= other;
}
*(s+i) = '\0';
return s;
}
int main() {
char buf[SIZE];
int size = 16;
cout<<setiosflags(ios::left)
<<setw(size)<<"decimal"
<<setw(size)<<"binary"
<<setw(size)<<"octal"
<<setw(size)<<"hex"<<endl;
for (int i=1; i<157; i++) {
cout<<setiosflags(ios::left)
<<setw(size)<<i
<<setw(size)<<convert(i, 2, buf);
cout<<setw(size)<<convert(i, 8, buf);
cout<<setw(size)<<convert(i, 16, buf)<<endl;
}
}
注:发表于: 2008-09-20 ,修改于: 2009-05-16 13:22,chinaunix
分享到:
相关推荐
* 十进制转换为二进制:将十进制数除以2,商数作为高位,余数作为低位。 * 二进制转换为十进制:将二进制数按位权乘以2的N-1次方。 (2)十进制与八进制之间的转换: * 十进制转换为八进制:将十进制数除以8,商数...
要将十进制转换为二进制或八进制,可以使用除法和取余的方法。 十六进制(Hexadecimal)是基于16的计数系统,使用0到9的数字和A到F(代表10到15)的字母。在汇编语言中,十六进制是常见的表示方式,因为它可以简洁...
"二进制八进制十进制十六进制之间的转换算法" 本文主要讲解了二进制、八进制、十进制、十六进制之间的转换算法。包括十进制与二进制之间的转换、八进制与二进制之间的转换、十六进制与二进制之间的转换等。 十进制...
- **八进制转十六进制**:先转换为十进制数,再由十进制转换为十六进制。 #### 十进制到其他进制 - **十进制转二进制**:除2取余逆序排列。 - **十进制转八进制**:除8取余逆序排列。 - **十进制转十六进制**:除...
进制转换器 二进制 八进制 十进制 十六进制
本文将详细阐述十进制、八进制、二进制以及十六进制之间的转换工具及其应用。 首先,让我们理解这四种进制的基本原理: 1. **十进制(Decimal)**:我们日常生活中的计数方式,基数为10,每一位的权重由10的幂次...
C语言实现十进制转换成二八十六进制的转换,代码已经经过调试可以使用,放心下载!
本篇文章将深入探讨如何利用C语言实现从十进制转换到二进制、八进制以及十六进制的方法。 一、十进制转二进制 十进制是我们日常生活中最常用的数字系统,而二进制则是计算机内部处理数据的基础。在C语言中,可以...
进制转换、二进制、八进制、十进制、十六进制 Java软件
本资源是一个Python编写的进制通用转换类,它提供了将...4、十六进制转十进制:除了从十进制转换到其他进制,该类还提供了将十六进制数转换为十进制数的功能。这对于处理来自外部源或用户输入的十六进制数据非常有用。
### C语言顺序栈实现十进制到二进制、八进制、十六进制的转换 #### 一、概述 本篇文章将详细介绍如何使用C语言中的顺序栈来实现十进制数字向二进制、八进制以及十六进制的转换。通过分析给出的代码示例,我们将...
例如,从十进制转换为二进制,可以采用“除基取余”法,不断将数值除以2并记录余数,直到商为0,然后将余数倒序排列即可得到二进制数。 在日常工作中,进制转换工具可以帮助我们快速、准确地进行这些计算,避免手动...
用数据结构栈实现的数制转换,将十进制数转换为二进制,八进制,十六进制。
在计算机科学和数字电路设计中,数据通常以不同的进制表示,其中最常见的是二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六进制(Hexadecimal)。十六进制和十进制之间的转换,以及它们与二进制之间的...
在Java编程语言中,将十进制数转换为二进制、八进制和十六进制是常见的操作,尤其在处理计算机数据表示和计算时。本文将深入探讨这些转换方法。 首先,我们要理解不同进制系统的基础。十进制是我们日常生活最常用的...
在计算机科学领域,数字的表示方式至关重要,其中最常见的有二进制、八进制、十进制和十六进制。这些不同的进制系统各有特点,适用于不同的计算和数据存储场景。"二、八、十、十六进制转换器"是一个方便的工具,能够...
至于八进制到十六进制,我们需要先将八进制转换为十进制,然后将十进制转换为十六进制。在转换为十进制之后,我们可以使用`HEX`函数(在某些系统中可能为`CONVERT(VARBINARY, ..., 16)`)将数字转换为十六进制。例如...
二进制(Binary)、八进制(Octal)和十六进制(Hexadecimal)是计算机领域最常用的三种非十进制计数体系,它们与十进制之间的转换是编程基础的一部分。 6.1 为什么需要八进制和十六进制? 在编程中,尽管我们通常...
进制转换是计算机科学中的基础概念,用于在不同的数值系统之间转换数字。...通过使用进制转换工具,我们可以更有效地处理和解析二进制、八进制、十进制和十六进制数据,从而更好地进行计算和沟通。
进制转换是计算机科学中的一种基本操作,它涉及到不同进制之间的转换,包括二进制、八进制、十进制和十六进制。下面我们将详细讨论进制转换的算法原理。 一、进制转换的定义 进制转换是指将一个数从一种进制转换为...