我用一个字节来存储一些像标志10101010,我想知道如何验证特定位为1或0.
如果你对二进制文件有所了解,我确信这很简单,但我在这个分数上是新手.
我如何从NASA .hgt文件中提取数据?以下是来自www2.jpl.nasa.gov/srtm/faq.html的说明:
SRTM数据文件的名称类似于"N34W119.hgt".字母和数字是指什么,什么是".hgt"格式?
每个数据文件覆盖地球表面的一度经度块的一度纬度.前七个字符表示街区的西南角,N,S,E和W指北,南,东,西.因此,"N34W119.hgt"文件涵盖纬度34至35北纬和西经118-119(此文件包括加利福尼亚州洛杉矶市中心).文件扩展名".hgt"只代表单词"height",意思是提升.它不是格式类型.这些文件采用"原始"格式(无标题且未压缩),16位有符号整数,以海拔高度为单位测量的高程,在"地理"(纬度和经度阵列)投影中,数据空白由-32768表示.国际3弧秒文件具有1201列和1201行数据,总文件大小为2,884,802字节(= 1201 x 1201 x 2).美国1弧秒文件有3601列和3601行数据,总文件大小为25,934,402字节(= 3601 x 3601 x 2).有关更多信息,请阅读http://edcftp.cr.usgs.gov/pub/data/srtm/Readme.html上的文本文件"SRTM_Topo.txt".
谢谢你的帮助!我将在python脚本中使用这些数据,所以如果你不能使用任何其他语言的任何语言特定的技巧,那将是非常棒的.
我正在寻找一个允许我打印int的二进制表示的函数.到目前为止我所拥有的是什么;
char *int2bin(int a)
{
char *str,*tmp;
int cnt = 31;
str = (char *) malloc(33); /*32 + 1 , because its a 32 bit bin number*/
tmp = str;
while ( cnt > -1 ){
str[cnt]= '0';
cnt --;
}
cnt = 31;
while (a > 0){
if (a%2==1){
str[cnt] = '1';
}
cnt--;
a = a/2 ;
}
return tmp;
}
Run Code Online (Sandbox Code Playgroud)
但是当我打电话时
printf("a %s",int2bin(aMask)) // aMask = 0xFF000000
Run Code Online (Sandbox Code Playgroud)
我输出像;
0000000000000000000000000000000000xtpYy(还有一堆未知字符.
这是函数中的缺陷还是我打印字符数组的地址或什么?对不起,我只是看不出我出错的地方.
NB代码来自这里
编辑:这不是家庭作业FYI,我正在尝试用不熟悉的语言调试别人的图像处理程序.然而,如果它被标记为家庭作业,因为它是一个基本概念,然后公平竞争.
我已经为iTunes商店构建了一个应用程序.但是,作为平台的菜鸟,我无法弄清楚如何提交应用程序.
我需要提交给iTunes商店的实际二进制文件在哪里?它内置了什么文件夹?
我想逐字节读取文件并检查每个字节的最后一位是否设置:
#!/usr/bin/python
def main():
fh = open('/tmp/test.txt', 'rb')
try:
byte = fh.read(1)
while byte != "":
if (int(byte,16) & 0x01) is 0x01:
print 1
else:
print 0
byte = fh.read(1)
finally:
fh.close
fh.close()
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Traceback (most recent call last):
File "./mini_01.py", line 21, in <module>
main()
File "./mini_01.py", line 10, in main
if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?我没有成功使用struct和binascii模块.
我有一个函数将字符串转换为十六进制,因此,
public static string ConvertToHex(string asciiString)
{
string hex = "";
foreach (char c in asciiString)
{
int tmp = c;
hex += String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString()));
}
return hex;
}
Run Code Online (Sandbox Code Playgroud)
你能帮我把另一个字符串写成基于我的样本函数的二进制函数吗?
public static string ConvertToBin(string asciiString)
{
string bin = "";
foreach (char c in asciiString)
{
int tmp = c;
bin += String.Format("{0:x2}", (uint)System.Convert.????(tmp.ToString()));
}
return bin;
}
Run Code Online (Sandbox Code Playgroud) 我无法理解ASN.1的基本概念.
如果类型是OID,相应的数字是否实际编码在二进制数据中?
例如,在这个定义中:
id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
Run Code Online (Sandbox Code Playgroud)
相应的1.3.6.1.5.5.7.48.1是否完全像这样编码在二进制文件中?
我问这个是因为我试图理解我在DER文件(证书)中看到的特定值,即04020500,我不知道如何解释它.
Scala直接支持使用十六进制和八进制数:
scala> 01267 + 0100
res1: Int = 759
scala> 0x12AF + 0x100
res2: Int = 5039
Run Code Online (Sandbox Code Playgroud)
但是你如何在Scala中将整数表示为二进制数?
我目前正在使用C++模拟MIPS处理器,用于comp体系结构类,并且在从十进制数转换为二进制数(双向带符号数)方面存在一些问题.一切正常,直到最后一点,因为我的当前算法在1 << = 31时落入int的界限区域.只需要朝着正确的方向轻推即可启动并运行.谢谢!
//Assume 32 bit decimal number
string DecimalToBinaryString(int a)
{
string binary = "";
int mask = 1;
for(int i = 0; i < 31; i++)
{
if((mask&a) >= 1)
binary = "1"+binary;
else
binary = "0"+binary;
mask<<=1;
}
cout<<binary<<endl;
return binary;
}
Run Code Online (Sandbox Code Playgroud)
我还包括我的其他算法的完整性.我为缺乏评论而道歉,但这是相当直接的.
int BinaryStringToDecimal(string a)
{
int num = 0;
bool neg = false;
if(a.at(0) == '1')
{
neg = true;
for(int x = a.length()-1; x >= 0; x--)
{
if(a.at(x) == '1')
a.at(x) = …Run Code Online (Sandbox Code Playgroud) 在std :: string和QByteArray之间无损转换的正确方法是什么...主要是为了处理二进制数据?
我正在使用:
QByteArray qba = QString::fromStdString(stdString).toAscii();
Run Code Online (Sandbox Code Playgroud)
和
QString(qba).toStdString();
Run Code Online (Sandbox Code Playgroud)
但我想检查一下这是否正确.