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?


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.


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.?


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.