例如 38000H 怎么能快速 笔算 转成十进制 ?
例如 38000H 怎么能快速 笔算 转成十进制 ?
|
ipadpro4kAug 20, 2020 via iPhone
1
3x16^4+8x16^3
|
|
2
其实我想问的末尾有很多 0 的大数 十六进制怎么转 ? 如果是 3800000000000H 呢
@ipadpro4k |
|
ipwxAug 20, 2020
3
$ python -c 'print(0x3800000000000)'
985162418487296 |
|
46foAug 20, 2020
4
每个操作系统都有个工具叫 计算器 😁
|
|
ljpCNAug 20, 2020 via Android
5
@ffLoveJava 先把末尾的 0 去掉计算,然后多少个 0 就乘上 16 的多少次方
|
|
dr1q65MfKFKHnJr6Aug 20, 2020
6
笔算。。。再怎么也快不了吧
|
|
lechainAug 20, 2020 via Android
7
scanf("%x",&x);
printf("%d", x); 这样最快 |
|
TomVistaAug 20, 2020
8
a16to10(3800000000000H) :dog
|
|
Tony042Aug 20, 2020
9
#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 实现了个进制转换 |
|
idealhsAug 20, 2020
10
大学期末都考完了,实在想不通你还有什么笔算的需求。。。
|
|
bubuyuAug 20, 2020
11
@ffLoveJava 一楼已经给了解法了,3*16^12+8*16^11
|
|
JoooooooooAug 20, 2020
12
?
不会是要人脑去算吧 用电脑啊 |
|
c6h6benzeneAug 20, 2020 via iPhone
13
笔算的话就是一楼的人公式,至于数字大…你可以跟老师申请用计算器。
|