标签: binary

在Java中编写函数以查找正整数N的二进制周期

给出了一个由Q个字符组成的非空零索引字符串S。该字符串的周期最小

正整数P使得:

?Q / 2和S [K] = S [K + P]为0?K <Q?P.

例如,“ pepsicopepsicopep”的时间段为7。如果M是N的二进制表示形式的周期,则正整数M是正整数N的二进制周期。

例如,1651的二进制表示形式为“ 110011100111”。因此,其二进制周期为5。另一方面,102没有二进制周期,因为它的二进制表示是“ 1100110”,并且它没有周期。

考虑上述情况,并用Java编写一个函数,该函数将接受整数N作为参数。给定正整数N,函数将返回N的二进制周期。如果N没有二进制周期,则函数应返回?1。

下面,我还提供了我曾为之努力的解决方案,我想知道是否还有其他更好的解决方案?

java binary bit-manipulation

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

使用java在base -2中创建二进制数组

我有一个数字值的函数:

val = sum{(A[i])*(-2)^i}
Run Code Online (Sandbox Code Playgroud)

因此,可以在st -8is [0,0,0,1]8is中完成表示位数组中的值[0,0,0,1,1].

请帮我写一个java方法,当我将一个十进制值传递给一个方法时,它将返回一个带有1和0的int数组,表示给定的十进制值.

Ex: when pass -8 , method returns [0,0,0,1].
    when pass 8 , method returns [0,0,0,1,1]. 
Run Code Online (Sandbox Code Playgroud)

java algorithm binary

0
推荐指数
1
解决办法
1195
查看次数

将整数写入二进制文件C++的问题

我正在使用fstream将整数写入二进制文件.

int main(){

fstream f1;
int num = 2, num2 = 0;

f1.open("dat1", ios::app | ios::out | ios::in | ios::binary);

f1.write((char *)num, sizeof(int));
f1.seekp(0);
f1.read((char *)num2, sizeof(int));

cout << num2;

}
Run Code Online (Sandbox Code Playgroud)

问题出在f1.write上.我可以写一个数组的二进制文件,但是当我尝试只编写一个int块时,它给了我一个错误:

Project.exe中0x522C7EA6(msvcp120d.dll)的未处理异常:0xC0000005:访问冲突读取位置0x00000002.

我不明白问题是什么.

c++ binary fstream file

0
推荐指数
1
解决办法
277
查看次数

字符串到二进制字符串 - 为什么有些字符是多字节的?

这段代码应该将字符串转换为二进制字符串,但是有几个字符串,它返回一个String16位二进制数字,而不是我预期的那样的8位数字.

public class aaa {        
    public static void main(String argv[]){
        String nux="ª";
        String nux2="Ø";
        String nux3="(";
        byte []bites = nux.getBytes();
        byte []bites2 = nux2.getBytes();
        byte []bites3 = nux3.getBytes();
               System.out.println(AsciiToBinary(nux));
               System.out.println(AsciiToBinary(nux2));
               System.out.println(AsciiToBinary(nux3));
               System.out.println("number of bytes :"+bites.length);
               System.out.println("number of bytes :"+bites2.length);
               System.out.println("number of bytes :"+bites3.length);


    }

    public static String AsciiToBinary(String asciiString){  

          byte[] bytes = asciiString.getBytes();  
          StringBuilder binary = new StringBuilder();  
          for (byte b : bytes)  
          {  
             int val = b;  
             for (int i = 0; i < 8; i++)  
             { …
Run Code Online (Sandbox Code Playgroud)

java string binary ascii

0
推荐指数
1
解决办法
428
查看次数

符号量,一个补码,两个补码

因此,我的教授有一个问题要列出所有正数和负数,这些数字可以用一个,二个补码和符号量表示:

使用4位数,例如(5)10 =(0101)2写出所有正数和所有负数,可以用符号幅度,1的补码和2的补码表示4位.

现在,我不是在寻找澄清的答案.

  • 对于符号幅度,第一位表示数字的符号.所以在提供的例子中,负五是-5 =(1101),那些补数=(0101)二进制补码(1010)
  • 符号幅度仅允许三位显示数字,一位用于符号(从右到左的前导位.)这意味着我们只有8种组合.这是0-7和-0-(-6)之间的数字我们有16个?所以0-15和-0 - ( - 15)

谁能更好地解释这个问题?

binary numbers

0
推荐指数
1
解决办法
9263
查看次数

将浮点数1864.78转换为二进制和IEEE格式

我一直在努力将标准普尔500指数的价值(现在是1864.78)转换为它在内存中以IEEE单精度格式表示的价值.

转换小数点左边(1864)很容易.

11101001000.

但是如何获得十进制的二进制表示(.78)?我尝试使用该技术但它在8位指数IEEE格式上产生了许多数字:

.78*2 = 1.56 1

.56*2 = 1.12 1

.12*2 = .24 0

.24*2 = .48 0

.48*2 = .96 0

.96*2 = 1.92 1

.92*2 = 1.84 1

.84*2 = 1.68 1

.68*2 = 1.36 1

.36*2 = .72 0

.72*2 = 1.44 1

.44*2 = .88 1(向上舍入,因为现在我们总共有23位)

11101001000.110001111011 =尾数23位

添加0表示符号

0 11101001000.110001111011

现在我需要将小数移动10个以上

1.1101001000110001111011 x 2 ^ 10指数现在是10

添加0位以使全尾数为23位

1.11010010001100011110110

指数是10所以10 + 127 = 137

等于10001001

所以0 10001001 11010010001100011110110是32位数.

这看起来像是一个体面的方法吗?我测试了这个值并写下了这个问题,我实际上可以自己完成它.

用这个测试十进制FP. http://www.h-schmidt.net/FloatConverter/IEEE754.html

c floating-point binary ieee-754

0
推荐指数
1
解决办法
8381
查看次数

当我说8时,Golang为什么不给我8个字节?

我以为x := make([]byte, N)应该定义一个N字节的片段.我得到0x015f82a975f9752b作为输出,在基数2中是:

0001 0101 1111 1000 0010 1010 1001 0111 0101 1111 1001 0111 0101 0010 1011

不是8. 我错过了什么?

请参阅genSalt()下面的功能及其输出.

package main

import (
  "crypto/rand"
  "crypto/sha256"
  "fmt"
  "golang.org/x/crypto/pbkdf2"
  "log"
)

// generate a salt with N random bytes
func genSalt() []byte {
  ret := make([]byte, 8) // N == 8 (..right?)
  _, err := rand.Read(ret)
  if err != nil {
    log.Fatal(err)
  }
  return ret
}

// pbkdf2 with sha256
// returns sha256.Size == 32 …
Run Code Online (Sandbox Code Playgroud)

binary byte bytearray go

0
推荐指数
1
解决办法
133
查看次数

Haskell没有(Eq Digit)实例使用==在表达式中:x == One

data Digit = Zero | One
convBNum :: [Digit] -> Int
convBNum [] = 0
convBNum (x:xs)
  | x == One = 2^length xs + convBNum xs
  | otherwise = convBNum xs
Run Code Online (Sandbox Code Playgroud)

这是将二进制数转换为int的简单函数的代码; 当我编译它时,它给了我这个错误:

no instance for (Eq Digit) arising from a use of == 
In the expression: x == One
Run Code Online (Sandbox Code Playgroud)

如果我理解得很好,也读了其他问题,问题是x不能是任何类型,但我无法理解如何解决这个问题以及如何使用Eq约束.

binary haskell

0
推荐指数
2
解决办法
291
查看次数

我的IEEE 754浮点表示有什么问题?

我在作业中被要求代表IEEE 754表示中的十进制0.1.以下是我做的步骤:

在此输入图像描述

然而,在线转换器和堆栈交换的这个答案暗示不然.他们把这个解决方案:

s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm
0 01111011 10011001100110011001101
Run Code Online (Sandbox Code Playgroud)

差异是右边的数字1.为什么不是1100,为什么是1101?

floating-point binary ieee-754

0
推荐指数
1
解决办法
1821
查看次数

Altair 8800数据和说明

最近我一直在玩Altair 8800仿真器以了解计算的基础知识,我想知道处理器如何"知道"字节是指令还是数据?

binary assembly intel-8080

0
推荐指数
1
解决办法
271
查看次数