【进制转换】CODEVS 1740 进制计算器

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<string>
 4 using namespace std;
 5 string s;
 6 int n,pow2[32];
 7 long long ans;
 8 void init()
 9 {
10     pow2[0]=1;
11     for(int i=1;i<=31;i++) pow2[i]=(pow2[i-1]<<1);
12 }
13 int main()
14 {
15     scanf("%d",&n); init();
16     for(int i=1;i<=n;i++)
17       {
18           cin>>s;
19           int len=s.length(),res=0;
20           for(int i=len-1,j=0;i>=0;i--,j++) res+=pow2[j]*(s[i]-‘0‘);
21           ans+=(long long)res;
22       }
23     printf("%lld\n",ans);
24     return 0;
25 }
时间: 2024-11-03 21:18:51

【进制转换】CODEVS 1740 进制计算器的相关文章

10进制转换成8进制

package cast; import java.util.Collections;import java.util.LinkedList;import java.util.List; public class Cast {    //测试    public static void main(String[] args) {        int a = Cast.castNum(100);        System.out.println(a);            }        

24小时进制转换12小时进制的小程序

class Program { static void Main(string[] args) { //24小时进制转换12小时进制的程序 Console.WriteLine("请输入24小时进制中的任意整点时间"); int time = Convert.ToInt32(Console.ReadLine()); string cha = time > 12 ? (time - 12) + "PM" : time + "AM"; Conso

进制转换(负进制) Luogu 1017

最近匆忙刷题,突然发现自己数学废掉了 ,居然忘了进制转换了QAQ~,后来我身边的王大佬又教了我一遍. 进制转换多数用的是短除法(别人是这么叫的),就是除以进制数后,记录余数,一直除到零为止,然后把记录的余数倒序输出,10及以上的用A.B等字母表示.然而如果遇到负进制(******),就应考虑到余数为负数的情况,例如:-3 mod -2 = -1 ,这时,就应该给这个余数加上进制数的绝对值,同时将整除得到的数加上现在的余数,为了保证计算的正确性,因为我们给余数加了进制数,就相当于做除法时 被除数

进制转换(各进制的原理)

二进制 一个字节等于8个二进制数 0       0    0    0   0  0  0  0 1       1    1    1   1  1  1  1 128  64  32  16  8  4  2   1 1代表有,0代表没有,从右往左看,八个二进制数分别代表了1,2,4,8,16,32,64,128.这8个二进制组合可以代表1~256当中的任何一个数字(所有都是1的话加起来就是256,所有都是0的话加起来就是0.  1~256当中任何一个数字都可以从中表示出来).这256个字

PAT-进制转换-B1022 D进制的A+B (20分)

题目描述: 输入两个非负10进制整数A和B(≤230-1),输出A+B的D(1<D≤10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 样例: 输入:123 456 8 输出:1103 思路: 先计算A+B的值,然后再将其转换为D进制.可使用“除基取余法”. 注意点: A+B的范围在int范围内 最好使用do···while语句.使用while语句要特判A+B等于0的情况 存储A+B%D的数组要从高位到低位进行输出 代码: 1 #include<iostream> 2

汇编语言程序:16进制转换成10进制(三种方法)

1 ;天水浪客(Gouki Jiang) , 16进制to10进制例题 2007.5.18 2 STACK SEGMENT PARA STACK 3 S_AREA DW 100H DUP(?) 4 S_TOP EQU $-S_AREA 5 STACK ENDS 6 7 DATA SEGMENT PARA 8 VALUE DW 0EB9AH ;060314 9 RESULT DB 5 DUP(?),'$' 10 DATA ENDS 11 12 CODE SEGMENT PARA 13 ASSUME

Java中将10进制转换成16进制

import java.util.Scanner; public class Decimal2HexConversion {     public static void main(String[] args){         Scanner input = new Scanner(System.in);         System.out.print("输入一个十进制数: ");         int decimal = input.nextInt();         Sys

用if语句把24小时制转换成12小时制

public class yunsuanfu { public static void main(String[] arg){ double t=2; int h=38; int m=100; int s=100; if(s>60){ m=(s/60)+m;s=s%60; } if (m>60){ h=(m/60)+h;m=m%60; } if(h>12){ t=t+(0.5*(h/12));h=h%12; } System.out.println(t+"天"+h+&

获取码值和进制转换系统(包括正负数、小数)

获取码值和进制转换 程序由来: 本人发现计算机中的计算器木有将十进制小数转二进制的功能,后来发现一些网站将十进制负数转二进制只是求出整数的二进制,然后前面加"-",这种表示不是真正的负数二进制.于是爱较真儿的我写了一个可以转十进制小数.负数.负数加小数为二进制的系统,供大家学习参考.介于理解代码,代码中运用到了纯拼音.虽然是拼音,但符合代码编写格式.介于个人知识有限,代码如有需要修改和改进的地方,敬请大家评教指正,共同学习. 实现功能: 获取字符的码值,包括中文. 进制转换包括:十进制