标签: base-conversion

在Ruby中将整数转换为十六进制字符串

是否有内置的方法将Ruby中的整数转换为十六进制等效?

与之相反的是String#to_i:

"0A".to_i(16) #=>10
Run Code Online (Sandbox Code Playgroud)

或许像:

"0A".hex #=>10
Run Code Online (Sandbox Code Playgroud)

我知道如何自己动手,但使用内置的Ruby函数效率可能更高.

ruby hex base-conversion

204
推荐指数
5
解决办法
13万
查看次数

基数为10次转换

我正在尝试编写一个执行基本转换的C++程序.

我想将十进制数转换为2到20之间的所有其他整数基数.

对于基本转换,是否有一种高效且易于实现的算法?

c++ algorithm base-conversion

16
推荐指数
1
解决办法
3万
查看次数

如何用八(8)个4位整数创建一个32位整数?

假设我有一个最大的32位整数-

const a =
  ((2 ** 32) - 1)
  
const b =
  parseInt("11111111111111111111111111111111", 2) // 32 bits, each is a one!
  
console.log(a === b) // true

console.log(a.toString(2))
// 11111111111111111111111111111111  (32 ones)

console.log(b.toString(2))
// 11111111111111111111111111111111  (32 ones)
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。但是,现在让我们说我想使用八(8)个4位数字制作一个32位数字。这个想法很简单:将<<每个4位序列移()到位置,然后将+它们相加()-

const make = ([ bit, ...more ], e = 0) =>
  bit === undefined
    ? 0
    : (bit << e) + make (more, e + 4)

const print = n =>
  console.log(n.toString(2))

// 4 bits
print(make([ 15 ])) // …
Run Code Online (Sandbox Code Playgroud)

javascript base-conversion twos-complement

13
推荐指数
1
解决办法
1151
查看次数

将二进制字符串转换为十六进制字符串JAVA

我想将我的二进制文件(在字符串中)转换为十六进制字符串,这只是一个程序片段,因为这个程序只是另一个更大的程序的一部分:

//the variable name of the binary string is: "binary"
int digitNumber = 1;
    int sum = 0;
    int test = binary.length()%4;
    if(test!=0) {
        binary = padLeft(binary, test);
    }
    for(int i = 0; i < binary.length(); i++){
        if(digitNumber == 1)
            sum+=Integer.parseInt(binary.charAt(i) + "")*8;
        else if(digitNumber == 2)
            sum+=Integer.parseInt(binary.charAt(i) + "")*4;
        else if(digitNumber == 3)
            sum+=Integer.parseInt(binary.charAt(i) + "")*2;
        else if(digitNumber == 4 || i < binary.length()+1){
            sum+=Integer.parseInt(binary.charAt(i) + "")*1;
            digitNumber = 0;
            if(sum < 10)
                System.out.print(sum);
            else if(sum == 10)
                System.out.print("A"); …
Run Code Online (Sandbox Code Playgroud)

java binary hex base-conversion

12
推荐指数
2
解决办法
5万
查看次数

如何在PHP或Java中打印十六进制数字

我需要打印一些数据(格式有点奇怪).我用PHP编写了if($ num%10 == 9),但我无法获得正确的输出.

所以看看这个例子.我们在文件夹中有x个文件.对于这个例子,x = 36.X总是众所周知的.

输出应如下所示:

01
02
03
04
05
06
07
08
09
0a
0b
0c
0d
0e
0f
10
11
...
19
1a
...
1f
20
...
24
Run Code Online (Sandbox Code Playgroud)

对于这么长的"清单"感到抱歉,但我相信你现在知道我需要什么.因此,在以9结尾的每个数字之后,我们有num(a,b,c,d,e,f),然后是数字,它跟在前面的数字后面,结尾是9.(例如3a ... 3f,40..49).最重要的是印刷线的数量必须等于x.

如果可能的话,我更喜欢PHP或Java代码,但我会非常感谢任何帮助.

php java algorithm base-conversion

11
推荐指数
3
解决办法
3万
查看次数

如何将十进制基数(10)转换为负基数(-2)?

我想写一个程序,从十进制转换为否定.

我无法弄清楚如何从十进制转换为否定.

我不知道如何找到规则及其工作原理.

例: 7(base10)-->11011(base-2)

我才知道7 = (-2)^0*1 + (-2)^1*1 + (-2)^2*0 + (-2)^3*1 + (-2)^4*1.

algorithm base-conversion base

10
推荐指数
1
解决办法
9505
查看次数

Bash decimal to base 62 conversion

我想反转以下bash命令执行的操作:

$ echo $((62#a39qrT))
9207903953
Run Code Online (Sandbox Code Playgroud)

即将十进制9207903953转换为基数62,保持bash标准{0..9},{a..z},{A..Z}.

我知道我可以通过使用来实现这一点bc,但我必须手动转换每个字符.例如,我目前这样做:

BASE62=($(echo {0..9} {a..z} {A..Z}))
for i in $(echo "obase=62; 9207903953" | bc)
do
    echo -n ${BASE62[$i]} #Doesn't work if bc's output contains leading zeroes
done
Run Code Online (Sandbox Code Playgroud)

必须有一种方法以较少"黑客"的方式做到这一点.你知道如何更有效地做到这一点吗?

编辑:更改bc输入.

bash shell base-conversion bc

10
推荐指数
1
解决办法
3643
查看次数

通过命令行将十六进制数字输入程序

我可以做这个:

int main(int argc, char** argv) {
  unsigned char cTest = 0xff;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是通过命令行将十六进制数字输入程序的正确方法是什么?

unsigned char cTest = argv[1];

没有办法.这产生了一个初始化,从指针生成整数而没有强制转换警告

c base-conversion strtol

9
推荐指数
3
解决办法
2万
查看次数

将大十六进制字符串转换为十进制字

我需要将一个大的(对于内置数据类型来说太大)十六进制字符串转换为带有十进制表示的字符串.例如:

std::string sHex = "07AA17C660F3DD1D2A1B48F1B746C148";
std::string sDec; // should end up with: "10187768649047767717933300899576725832"
Run Code Online (Sandbox Code Playgroud)

我目前正在使用c ++ BigInt类,它提供了一种非常简单的方法来实现这一目标(但仅限GPL):

BigInt::Vin vbiTemp(sHex, 16);
sDec = vbiTemp.toStrDec();
Run Code Online (Sandbox Code Playgroud)

没有第三方算术库,有没有简单的方法来进行这种转换?或者你能推荐一个类似简单的免费(非GPL)替代方案(效率无关紧要)?

c++ base-conversion arbitrary-precision

8
推荐指数
1
解决办法
8475
查看次数

将数字从 10 进制转换为 60 进制

最近,我读到古巴比伦文明使用以 60 为基数而不是 10 为基数的数字系统。即使使用以 60 为基数的数字系统,他们仍然能够近似计算 2 \xe2\x80\x94 的平方根,并且几千年前也是如此!

\n

在此输入图像描述

\n

我对此很好奇,想看看如何将十进制(以 10 为基数)中的数字转换为六十进制(以 60 为基数)。使用 R 编程语言,我找到了此链接,其中提供了有关将数字从某个基数转换为不同基数的答案。

\n

然而,这里似乎基数只能在 2 到 36 之间(我想要基数 60):

\n
base <- function(b, base = 10)\n{\n  base <- as.integer(base)\n  if(base > 36 | base < 2) stop("\'base\' must be between 2 and 36.")\n  \n  structure(lapply(b, function(x) \n    {\n      n   <- ceiling(log(x, base))\n      vec <- numeric()\n      val <- x\n      \n      while(n >= 0)\n      {\n        rem <- val %/% base^n\n        val …
Run Code Online (Sandbox Code Playgroud)

r decimal base-conversion

8
推荐指数
1
解决办法
1081
查看次数