Oitava GNU: Como mudar a base de DEC para BIN?

0

Eu preciso fazer muitos cálculos binários do formulário:

10.1^(1/11) base 2
10.001^(1/11) base 2
10.0001^(1/11) base 2
10.00001^(1/11) base 2
10.000001^(1/11) base 2
...

onde 1/11 base 2 = 1/3 base 10.

Eu não quero usar bin2dece dec2binpara binário. Eu quero fazer cálculos como no DEC, sem me preocupar com as funções complicadas. Então, como posso fazer os cálculos binários no Octave?

Léo Léopold Hertz 준영
fonte
11
Você deve rotular suas radições: (10.1 base 2) ^ (1/3 base 10) (se estiver correto), para que sua pergunta fique mais clara.
Dennis Williamson

Respostas:

2

A resposta longa é: é possível, mas você terá que: a) programar você mesmo; ou b) conseguir que alguém o programa para você. Este método de escrever a base-2 fracionária simplesmente não é usado na computação.

Programar uma função para converter essa representação de números binários fracionários em binário padrão de ponto flutuante de precisão dupla IEEE754 não é impossível; portanto, se é um must-have absoluto, é possível.

charlatão quixote
fonte
Sim, mas o problema fundamental de Masi aqui é tentar obter oitava para interpretar "10.1" como o binário 2 + um pouco, em oposição ao 10.1 decimal. O 10.1 absolutamente tem que ser encapsulado como argumento para alguma função, mas é exatamente isso que o masi está tentando evitar - essas "funções complicadas" - então agora você está de volta onde começou, uma função para converter o número dele formato binário híbrido para um formato compreensível por oitava ..
DaveParillo
correto (veja meus comentários na sua resposta). Essa resposta está esclarecendo exatamente o que ele deve fazer para realizar o que deseja - apesar de ser exatamente do jeito que ele não deseja.
quack quixote
1

A resposta curta é que você não pode. Se eu li o seu exemplo corretamente e 10.1 deveria ser um número de ponto flutuante binário? Não conheço o conceito de 'binário de ponto flutuante' na oitava. Eu acho que você terá que gerenciar manualmente o mantissa e o expoente se quiser fazer isso.

Se você definir toda a aritmética de bits, já tentou as funções de manipulação de bits ? bitset, etc.?

DaveParillo
fonte
agora isso parece um problema de conversão: basta encontrar uma maneira de converter automaticamente sua string para algum formato de binário flutuante que o Octave entenderá.
quack quixote
~ charlatão: agora está tudo em binário, a conversão não é meu problema. Quero mudar a base do ambiente, sem precisar me preocupar com a conversão o tempo todo.
Léo Léopold Hertz
Masi, os computadores não lêem números de ponto flutuante nesse tipo de binário. eles usam IEEE754 ou outras representações.
quack quixote
por exemplo, "10,1 base 2" = 4,5 base 10 = 0x40900000 no formato de ponto flutuante de precisão única IEEE754. (? ou faz isso eu cheguei a conversão de base 10 certo?) ver babbage.cs.qc.cuny.edu/IEEE-754/Decimal.html
quack quixote
oik? Saudações. xxxxxxx
Xavierjazz 9/10/09