数组-----二进制数与十进制数互换

  1. //二进制数转换为十进制数
  2. #include"stdafx.h"
  3. #include<iostream>
  4. //#include<string.h>
  5. //#include<process.h>
  6. using namespace std;
  7. void main(){
  8. int i, bitv, w=1, value = 0;//value累加和、bitv位值(0或1)、w权值
  9. char a[20];
  10. cout << "Enter a bit binary number(less than 20 bit):"<<endl;
  11. cin >> a;
  12. for (i = strlen(a)-1; i >= 0; i--){
  13. bitv = a[i];
  14. if (bitv == ‘1‘)//注意字符串形式
  15. value += w;
  16. else
  17. if (bitv !=‘0‘)
  18. { //判断输入正误
  19. cout << "enter error!";
  20. exit(0);
  21. }
  22. w *= 2; //更换权值
  23. }
  24. cout << " ------------ - result------------ -" << endl;
  25. cout << a << "(2)="<<value << "(10)"<<endl;
  26. }
  27. -----------------------------------------------------------------------------------

//十进制数转换为二进制数(逐次除二,倒取余数)

  1. #include"stdafx.h"
  2. #include<iostream>
  3. using namespace std;
  4. void main(){
  5. int n,bitv,i=0;
  6. int a[20];
  7. cout << "Please enter a integer(10):"<<endl;
  8. cin >> n;
  9. while (n >= 1){
  10. bitv = n % 2;
  11. a[i] = bitv;
  12. i++;
  13. n/=2;
  14. }
  15. cout << n << "(10)=";
  16. for (int j = i - 1; j >= 0; j--){
  17. cout << a[j];
  18. }
  19. cout << "(2)"<<endl;
  20. }
时间: 2024-10-03 10:51:48

数组-----二进制数与十进制数互换的相关文章

二进制数转换十进制数

二进制数表示计算机的由来: 计算机内部由IC(集成电路)这种电子部件构成.IC有几种不同形状,又的像黑色蜈蚣,在两侧有数个乃至上百个引脚,引脚在IC内部并排 排列着. 所有引脚只有直流电压 0V 或 5V 两个状态.这一特性决定了只能用二进制数来处理. 把各个为拆开.乘以2的次幂.末尾位乘2的0次幂.依次类推. 比如:10010111 十进制=1*2^7+0*2^6+0*2^5+1*2^4+0*2^3+1*2^2+1*2+1*2^0 : PS:末尾位是2的零次幂,所以是1. 二进制: 11 00

每日算法之四十八:Plus One (数组表示的十进制加一进位)以及求Sqrt(x)

给定数组表示的十进制数,加一操作.结果依然用十进制的数组表示.这里主要注意最高位(digit[0])依然有进位,即溢出的情况. Given a non-negative number represented as an array of digits, plus one to the number. The digits are stored such that the most significant digit is at the head of the list. <span style=

将十进制数转换为二进制数----不用数组,也不用函数,只用循环

输入一个正整数(十进制),输出此整数对应的二进制数(用循环实现,但不用数组,也不用函数调用) /* 输入一个正整数(十进制),输出此整数对应的二进制数(用循环实现,但不用数组) 分析:十进制转换成二进制的方式: 用辗转相除依次取余,直到商为0,获取逆序的余数序列就是对应的二进制数 用循环不用数组,因此,将按先得到的余数序列组成一个整数值, 再逆序输出该整数值(从低位到高位输出),即获得二进制代码 */ #include <iostream> using namespace std; int m

十进制数与二进制数的互相转化

二进制数是机器的语言,它与我们常用的十进制数存在着转化的方式 十进制数转化二进制公式:1.整数部分:除2取余 2.小数部分:乘2取整: 或者用数轴法来计算该十进制数为哪几个2的幂的和,然后将相应位置1即可得到二进制数: 二进制转化十进制:找到所有二进制数为1的位,然后将2的位数减一次幂相加即可得到相应的十进制数.

java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

1 package com.llh.demo; 2 3 import java.util.Scanner; 4 5 /** 6 * 7 * @author llh 8 * 9 */ 10 public class Test { 11 /* 12 * 将任意一个十进制数数字转换为二进制形式,并输出转换后的结果(使用数组存储) 13 */ 14 public static void main(String[] args) { 15 Scanner sc = new Scanner(System.in

打印出从1到最大的n位十进制数,如输入3 打印 1到 999

打印出从1到最大的n位十进制数,如输入3  打印 1到 999 分析: 可能很多人想到直接求出  10的 n次方  ,然后从1打印到该数.这种情况只适合输入比较小的数字  如  1   2    3   4   5  但是当输入100时,肯定无法直接表示该数. 所以,用数组是一个不错的方法   number[n] 换种思路,n位所有十进制数其实就是n个0-9的数全排列的过程,只是排在前面的0我们不打印出来. 类似于树的深度遍历,树的深度为10层,先从第一层遍历到最后一层   ,当最后一层的所有可

非数值数据的表示以及十进制数的二进制编码(BCD)表示

非数值符号编码 计算机对非数值符号的处理大致分三个过程:字符输入,机内处理,字符输出:这就对应这三种阶段的编码,这里叫做输入码,机内码,字形码,不同阶段可以用 相同的编码技术.这只是我对中文编码的扩展,因为都是非数值符号,所以中文和西文没有什么太大区别. 这里主要以汉字的处理为主,西文的处理类似.汉字输入码的编码方式大致分四种:流水码(国标码,区位码),音码(全拼,智能ABC),形码(五笔),音形码.汉字机内码是计算机内存储和处理汉字时候用到的编码(GB2312,ascii,utf-8),这种对

用栈实现2进制数到十进制数的转换

问题:用栈实现2进制数到十进制数的转换 解析:用到<math.h>库中的pow函数,pow(2,i)表示2^i.当进行形参到实参的传送时,需要改变栈中的元素时传入&s,当不改变栈中元素,只对栈s进行操作时,传入s 代码实现: /*利用栈的特点将2进制数转换为10进制数 */ #include<stdio.h> #include<stdlib.h> #include<math.h> #define ElemType char #define Init_

剑指offer (33) 把数组排成最小的数

题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接处的所有数字中最小的一个 例如输入数组 {3, 32, 321}则打印这3个数字能排成的最小数字 321323 两个数字m和n能拼接成数字mn和nm,如果mn < nm,则打印出mn,也就是m排在n之前,我们定义此时 m 小于 n,也就是相当于 自定义了qsort排序的 函数指针 本题拼接数字可能超出表达范围,需用大数解决 int compare(const void* strNumber1, const void* str