标签: binary

分析给定初始内容递增二进制计数器的复杂性

关键是二进制计数器在开头有一些内容.它是否仍然按时间复杂度摊销?怎么证明呢?

假设我们有11010二进制计数器,我们将它递增,以便它现在11011等等.

单增量运营的摊余成本是多少?

algorithm binary complexity-theory counter

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

C-运行长度编码不适用于大文件,适用于较小的文件

我有一个问题,当我使用这个在41 KB的文件压缩它(虽然,因为它使用运行长度编码似乎总文件大小的两倍),并解压缩正常.但是,当我尝试在16,173 kb文件上使用它并解压缩时,它没有打开,文件大小为16,171 kb ....所以它解压缩但它没有返回到它的原始形式.. ..搞砸了......让我感到困惑,我似乎无法弄清楚我做错了什么......

使用的方法是行程编码,它用计数后跟字节替换每个字节.

之前:

46 6F 6F 20 62 61 72 21 21 21 20 20 20 20 20

后:

01 46 02 6F 01 20 01 62 01 61 01 72 03 21 05 20

这是我的代码:

    void compress_file(FILE *fp_in, FILE *fp_out)
    {
        int count, ch, ch2;

        ch = getc(fp_in);
        for (count = 0; ch2 != EOF; count = 0) {
            // if next byte is the same increase count and test again
            do {
                count++; …
Run Code Online (Sandbox Code Playgroud)

c binary run-length-encoding

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

错误1错误C2678:二进制'!=':找不到哪个运算符带有'std :: ofstream'类型的左操作数(或者没有可接受的转换)

我在调试或发布时遇到此错误

错误1错误C2678:二进制"!=":没有操作员发现这需要类型的左边的操作数"的std :: ofstream的"(或没有可接受的转换)C:\用户\ yuser \桌面\注射器\注射器\ WriteLog.h 27 1注射器

谁能帮我解决这个问题

Writelog.h

#include <windows.h> 
#include <tlhelp32.h> 
#include <shlwapi.h> 
#include <conio.h> 
#include <stdio.h> 
#include <iostream>

#pragma warning(disable:4996)


using namespace std;


ofstream ofile;
char dlldir[320];
char LogFileName[20] = "Log.txt"; //Change this if you want

char *GetDirectoryFile(char *filename){
    static char path[320];
    strcpy(path, dlldir);
    strcat(path, filename);
    return path;
}

void WriteLog(const char *fmt, ...){
    if (ofile != NULL) <<< Problem is here on( ! ) gives error 
    {
        if (!fmt) { return; }
        va_list …
Run Code Online (Sandbox Code Playgroud)

c++ binary

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

如何从C++中的二进制文件中读取一位?

我们正在做一些关于随机数的实验.给出的数据存储在.bin文件中,根据提供程序,它存储在独立的位中,也就是说,每个位都是假设的bool随机变量.

现在我想在程序中使用这个输入,但是当bool占用1个BYTE并且int占用4个字节时,我不知道如何将它读入C++中的变量.似乎ifstream.read(s,n)也只取n作为char的数量.

有没有办法从文件中读取位数据?谢谢!

c++ binary input

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

使用二进制计数对数组的所有子集进行计数

所以如果给我一个数组如

a = {1, 2, 3} 
Run Code Online (Sandbox Code Playgroud)

我们知道给定的子数组(不连续)是(这表示幂集)

{1} {2} {3} {1,2,3} {1,2} {1,3} {2,3}
Run Code Online (Sandbox Code Playgroud)

我也知道这些子集可以通过从

000 -> 111 (0 to 7), where each 1 bit means we 'use' this value from the array
e.g. 001 corresponds to the subset {3}
Run Code Online (Sandbox Code Playgroud)

我知道可以用某种方法生成所有子集,但是我不确定如何在c ++中实现

因此,基本上,我要问的是如何(如果可以的话)使用二进制计数来生成功率集?

任何其他用于生成功率集的方法也将不胜感激!

c++ binary counting powerset

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

如何用C语言将字符数组转换为二进制数组

我知道这个问题似乎很熟悉C中将Char转换为Binary,但并不完全相同.我正在将一个字符数组转换为二进制整数.作为第二步,我试图在一个整数数组中连接它们.我正在将整数转换回字符,以便我可以将它们连接起来.该脚本似乎工作正常,但由于某些原因,当我打印整个字符串时,我无法理解它在字符串的开头产生一个不可打印的字符.

代码示例:

#include <stdio.h>
#include <string.h>

int main(void) {

  char *temp;
  char str[2];
  char final[32];

  for (temp = "LOCL"; *temp; ++temp) {
    int bit_index;
    for (bit_index = sizeof(*temp)*8-1; bit_index >= 0; --bit_index) {
      int bit = *temp >> bit_index & 1;
      printf("%d ", bit);

      snprintf(str, 2, "%d", bit);
      printf("This is test: %s\n",str);
      strncat(final , str , sizeof(final) );
    }
    printf("\n");
  }
  printf("This is the array int: %s\n",final);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

有人能帮我理解我哪里错了吗?

在此先感谢您花时间和精力来帮助我.

c arrays binary

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

类型为'int'和'double(double*,double*,int)'的二元运算符的操作数无效

我们正在为课堂上的项目进行线性回归.我必须写一个函数.我已经尝试过静态转换和其他将"int n"更改为double的方法,因此它不会抛出错误?还是我完全错误的思路?

功能

void linear_regression(double x[], double y[], int n,
                   double *slope, double *y_int)
{    
    double sum_x, sum_y, sum_x_Squared, sum_Squared_x, product_x_y;
    double m = *slope, b = *y_int;

    sum_x = sum_array(x, n);
    sum_y = sum_array(y, n);

    sum_Squared_x = sum_square_array(x, n);
    sum_x_Squared = sum_array(x, n) * sum_array(x, n);

    product_x_y = sum_product_of_arrays(x, y, n);

    //I'm getting an error on the next statement, about the n
    m = ((sum_x * sum_y) - (n * sum_product_of_arrays)) /
            ((sum_x_Squared) - (n * sum_Squared_x));
    b = …
Run Code Online (Sandbox Code Playgroud)

c++ binary types operands operator-keyword

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

为什么我们使用base 32或base 64来表示数据而不是0和1?

我最近编写了一个程序来序列化一些数据(java对象)并将结果字符串保存在文本文件中.信息在base 64中序列化,因此数据最终看起来像这样:

rO0ABXBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBzcgAab3JnLmJ1a2tpdC51dGlsLmlvLldyYXBwZXLyUEfs8RJvBQIA.

我有点理解base 64的意思,但是,因为这是胡言乱语,为什么文本文件或计算机从一开始就显示0和1?如果我正确理解了基础过程,那么计算机上的所有信息都会以0和1的形式存储在某处,因为这是计算机最终存储信息的唯一方式.base 64不仅仅是一种读取和解释字节的方法吗?为什么要让我的文本编辑器读取保存在计算机上的字节,将它们转换为字母(最终使文档更短)然后在上面的表单中显示它?尽管base 64导致在视觉上更紧凑地显示信息的方式,但是无论如何也没有人能够读取基本64文本并且文件仍然具有相同的确切大小.

java binary base64 serialization base

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

Python Denary到二进制转换器

嗨,你能帮我把denary值转换成二进制和十六进制吗?我必须输入0到15之间的数字,输出应该是十六进制和二进制等价.这是我到目前为止所做的:

    denary_list=           ["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]
    print("denary list")


binary_list=["0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"]
print("binary list")

hex_list=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]
print("hex list")
option=input("enter choice:\n1.print values\n2.convert denary number to binary and hex\n3. Convert a hex value between 0 and 15 to denary or binary value\n9. Quit")
if option=='1':
   print ("denary","\t","binary","hex")
   count1=0
   while count1<len(denarylist) and count1<len(binarylist) and count1<len(hexlist):
       print(denarylist[count1],"\t",binarylist[count1],"\t",hexlist[count1])
       count1+=1
if option=='2':
  number=int(input("what number do you choose to convert to binary and hex"))
  if number<=15 and number>=0:
Run Code Online (Sandbox Code Playgroud)

python binary

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

我们可以在没有fopen的情况下在C中打开二进制文件吗?

在C编程中,我们可以在没有fopen()的情况下打开二进制文件,只能打开吗?因为我需要文件描述符,而不是文件流.

谢谢

c binary fopen

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