十六进制怎么快速计算转成十进制

2020-08-20 08:49:02 +08:00
 ffLoveJava

例如 38000H 怎么能快速 笔算 转成十进制 ?

2301 次点击
所在节点    问与答
13 条回复
ipadpro4k
2020-08-20 08:51:52 +08:00
3x16^4+8x16^3
ffLoveJava
2020-08-20 09:01:04 +08:00
其实我想问的末尾有很多 0 的大数 十六进制怎么转 ? 如果是 3800000000000H 呢
@ipadpro4k
ipwx
2020-08-20 09:03:59 +08:00
$ python -c 'print(0x3800000000000)'
985162418487296
xdeng
2020-08-20 09:05:56 +08:00
每个操作系统都有个工具叫 计算器 😁
ljpCN
2020-08-20 09:08:15 +08:00
@ffLoveJava 先把末尾的 0 去掉计算,然后多少个 0 就乘上 16 的多少次方
cedoo22
2020-08-20 09:18:44 +08:00
笔算。。。再怎么也快不了吧
lechain
2020-08-20 09:29:05 +08:00
scanf("%x",&x);
printf("%d", x);
这样最快
TomVista
2020-08-20 09:30:38 +08:00
a16to10(3800000000000H) :dog
Tony042
2020-08-20 09:35:16 +08:00
#pragma once
#include "../typelist/ctvalue.hpp"
#include <cassert>
#include <cstddef>

constexpr int toInt(char c)
{
if (c >= 'A' && c <= 'F')
{
return static_cast<int>(c) - static_cast<int>('A') + 10;
}
if (c >= 'a' && c <= 'f')
{
return static_cast<int>(c) - static_cast<int>('a') + 10;
}
assert(c >= '0' && c <= '9');
return static_cast<int>(c) - static_cast<int>('0');
};

template <std::size_t N>
constexpr int parseInt(char const (&arr)[N])
{
int base = 10;
int offset = 0;
if (N > 2 && arr[0] == '0')
{
switch (arr[1])
{
case 'x':
case 'X':
base = 16;
offset = 2;
break;
case 'b':
case 'B':
base = 2;
offset = 2;
break;
default:
base = 8;
offset = 1;
break;
}
}
int value = 0;
int multiplier = 1;
for (std::size_t i = 0; i != N - offset; ++i)
{
if ((arr[N - 1 - i] != '\'') && (arr[N - 1 - i] != '\0'))
{
value += toInt(arr[N - 1 - i]) * multiplier;
multiplier *= base;
}
}
return value;
}
今天刚用 C++ constexpr 实现了个进制转换
idealhs
2020-08-20 09:46:17 +08:00
大学期末都考完了,实在想不通你还有什么笔算的需求。。。
bubuyu
2020-08-20 10:21:26 +08:00
@ffLoveJava 一楼已经给了解法了,3*16^12+8*16^11
Jooooooooo
2020-08-20 10:35:47 +08:00
?

不会是要人脑去算吧

用电脑啊
c6h6benzene
2020-08-20 10:41:19 +08:00
笔算的话就是一楼的人公式,至于数字大…你可以跟老师申请用计算器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/699799

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX