可能重复:
将1s和0s的字符串转换为二进制值
我想将二进制字符串转换为c ++中的整数字符串.例如:
"000000000010" 变 "2"
我有以下约束:我不能将此字符串转换为整数类型,然后再将其转换为字符串,因为该二进制字符串可能非常大!
我已经尝试过这样做,用stringstream标志插入二进制字符串std::stringstream::binary然后使用std::dec标志输出内容,但它不起作用
谢谢大家.
我正在编写一些东西来分解训练网站上的二进制数字.我在我的本地编译器上测试了一百次,它运行得很好,但是训练网站告诉我有错误.
(我的代码既不优雅也不高效,尤其是循环,但我分解了代码以了解错误的位置).有人能告诉我是否有错误吗?
#include <stdio.h>
#include <stdlib.h>
//function that displays the greatest power of 2 less than a fixed number N
int residu(int N)
{
int i;
int M=2;
for(i=0;i<N;i++){
if(M>N){break;}else{M=2*M;i++;}
}
return M/2;
}
int main()
{
int i;
//N is the input to decompose
int N;
scanf("%d",&N);
//We will search for the greatest power of 2 less than a fixed number N,
//than repeating the some process with the residue of N with the greatest power of 2 //less …Run Code Online (Sandbox Code Playgroud) 我是C#binary的新手,我需要知道一些事情......
阅读exe
将其翻译为字符串(例如10001011)
修改字符串
把它写回一个新的exe
我听说过string.Join将二进制文件转换为字符串,但我无法理解.
我想编写一个模板二进制搜索算法,它可以使用仲裁比较器搜索模板类型QList中的模板类型元素,如下所示:
template<typename T,typename compare_less>
static int binary_search(QList<T>* list, T target) {
int low = 0;
int high = list->count()-1;
while (low <= high) {
int middle = low + (high - low)/2;
if (compare_less(*target, *list[middle]))
high = middle - 1;
else if (compare_less(*list[middle],*target))
low = middle + 1;
else
return middle;
}
return low;
Run Code Online (Sandbox Code Playgroud)
}
现在,我如何正确实现这一点,以使其适用于QDateTime*模板参数?我想调用这样的函数:
int index = binary_search<QDateTime*, ???>(dateTimeList,date);
Run Code Online (Sandbox Code Playgroud)
其中dateTimeList的类型为QList,date的类型为QDateTime*,我真的不知道在问号位置写什么.
有人可以帮我正确实现算法,并告诉我如何用这些参数调用算法?
我知道这种接缝很容易,但我对这种特殊情况有疑问.我已经知道如何使用PHP将十进制转换为二进制,但我想显示完整的位序列,但令人惊讶的是,我不知道如何.
转换必须是这样的:
converting 127(decimal) to binary using PHP = 1111111. the bit sequence is 1-128 for every
octet(IP Address) so this must output = 01111111 even 128 is not used.
2nd Example:
1(decimal) to binary = 01. Want to display the full 1-128 binary sequence even if
128,64,32,16,8,4,2 is not used it must be like this 00000001 not 01.
Run Code Online (Sandbox Code Playgroud)
这是我的PHP代码:
<?php
$octet1 = $_POST["oct1"];
$octet2 = $_POST["oct2"];
$octet3 = $_POST["oct3"];
$octet4 = $_POST["oct4"];
echo decbin($octet1) ," ", decbin($octet2) ," ", …Run Code Online (Sandbox Code Playgroud) 我试图从字节数组中获取正确的int。通过POS for .Net从RFIDTag读取字节。(大约需要18位)
二进制格式的字节数组如下:00001110 11011100 00000000 00011011 10000000
我需要摆脱的是:00 00000000 11101101(int = 237)
从原始字节开始将以相反的顺序为以下位:------ 10 11011100 00000000
我一直在看bitArray。Array.Reverse。以及几种移位位的方法。但是我只是无法绕过这个头。
谁能指出我正确的方向?
采访编码采访:
如何实现incrementO(1)时间复杂度的无限二进制计数器?
我想要计算最右边的第一个和第二个位置0,但我不知道如何实现它.
"无限计数器"意味着您可以增加无限次(大于MAX_INT).
我仍然是编码的初学者,所以遇到了这个问题,我正在尝试将整数转换为二进制表示形式
#include <stdio.h>
int main () {
int x;
printf("input the number\n");
scanf("%d",&x);
while(x!=0) {
if (x%2)
printf("1");
else
printf("0");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以它的输出像这样12 = 0011但12 = 1100这是什么问题,我该如何解决?
我想知道Python编程的一个非常基本的东西,因为我现在是一个非常基本的程序员):如何在Python中将结果(列表,字符串或其他)保存到文件中?我一直在搜索,但我找不到任何好的答案.我正在考虑".write()"方法,但是(例如)它似乎没有使用字符串,我也不知道它应该做什么.所以,我的情况是我有二进制文件,我想编辑,因此我发现很容易将它们转换为字符串,修改它们,现在我想保存它们i)回到二进制文件(jpegs图像)和ii)在我想要的文件夹中.我该怎么办?我需要一些帮助.
UPDATE
这是我正在尝试运行的脚本:
import os, sys
newpath= r'C:/Users/Umberto/Desktop/temporary'
if not os.path.exists (newpath):
os.makedirs (newpath)
data= open ('C:/Users/Umberto/Desktop/Prove_Script/Varie/_BR_Browse.001_2065642654_1.BINARY', 'rb+')
edit_data= str (data.read () )
out_dir= os.path.join (newpath, 'feed', 'address')
data.close ()
# do my edits in a secon time...
edit_data.write (newpath)
edit_data.close ()
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
AttributeError: 'str' object has no attribute 'write'
Run Code Online (Sandbox Code Playgroud)
UPDATE_2
我尝试使用pickle模块来序列化我的二进制文件,修改它并在最后保存它,但仍然没有让它工作......这是我到目前为止所尝试的:
import cPickle as pickle
binary= open ('C:\Users\Umberto\Desktop\Prove_Script\Varie\_BR_Browse.001_2065642654_1.BINARY', 'rb')
out= open ('C:\Users\Umberto\Desktop\Prove_Script\Varie\preview.txt', 'wb')
pickle.dump (binary, out, 1)
TypeError Traceback (most recent call last)
<ipython-input-6-981b17a6ad99> in <module>()
----> 1 pprint.pprint …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用c ++跟随代码,我无法弄清楚为什么返回零.
10 & (!5)
我们知道二进制10是1010,5是0101而不是(5)是1010.让我们来看看:
1010 //Which represent 10
1010 //Which represent not(5)
------AND
1010
Run Code Online (Sandbox Code Playgroud)
这应该实际上返回10而不是零.我错了吗 ?