Questions tagged «binary»

二进制(以2为底的数字系统)使用两个符号表示数字:0和1。对于已编译的计算机程序,请改用“ executable”标记。


8
字符串文字前的'b'字符做什么?
显然,以下是有效的语法: my_string = b'The string' 我想知道: 这是什么b字在前面的字符串是什么意思? 使用它有什么作用? 在什么情况下可以使用它? 我在SO上找到了一个相关的问题,但是这个问题是关于PHP的,它指出b用来表示字符串是二进制的,与Unicode相反,Unicode是使PHP <6版本兼容的代码所必需的,当迁移到PHP 6时。我认为这不适用于Python。 我确实在Python站点上找到了有关使用相同语法的字符将字符串指定为Unicode的文档u。不幸的是,它在该文档的任何地方都没有提到b字符。 而且,只是出于好奇,有没有比多符号b和u是做其他事情?
830 python  string  unicode  binary 

16
什么是应用程序二进制接口(ABI)?
我从不清楚什么是ABI。请不要将我指向Wikipedia文章。如果我能理解的话,我就不会在这里发表如此冗长的文章。 这是我对不同接口的看法: 电视遥控器是用户和电视之间的接口。它是一个现有的实体,但是它本身是无用的(不提供任何功能)。电视机上实现了遥控器上每个按钮的所有功能。 接口:是该功能的functionality和之间的“现有实体”层 consumer。接口本身不执行任何操作。它只是调用后面的功能。 现在,取决于用户是谁,有不同类型的界面。 命令行界面(CLI)命令是现有的实体,使用者是用户,而功能却在后面。 functionality: 我的软件功能可以解决我们描述此界面的某些目的。 existing entities: 命令 consumer: 用户 图形用户界面(GUI)窗口,按钮等是现有的实体,而使用者又是用户,功能又在后面。 functionality: 我的软件功能解决了我们描述此接口时遇到的一些问题。 existing entities: 窗口,按钮等。 consumer: 用户 应用程序编程接口(API)函数(或更准确地说)(在基于接口的编程中)接口是现有的实体,此处的使用者是另一个程序,而不是用户,并且功能仍在该层后面。 functionality: 我的软件功能解决了我们描述此接口时遇到的一些问题。 existing entities: 函数,接口(函数数组)。 consumer: 另一个程序/应用程序。 应用程序二进制接口(ABI)这就是我的问题所在。 functionality: ??? existing entities: ??? consumer: ??? 我已经用不同的语言编写了软件,并提供了不同种类的界面(CLI,GUI和API),但是我不确定是否提供过任何ABI。 维基百科说: ABI涵盖了诸如 数据类型,大小和对齐方式; 调用约定,它控制如何传递函数的参数以及如何检索返回的值; 系统调用号以及应用程序应如何对操作系统进行系统调用; 其他ABI标准化细节,例如 C ++名称修改 异常传播,以及 相同平台上的编译器之间的调用约定,但不需要跨平台兼容性。 谁需要这些细节?请不要说操作系统。我知道汇编编程。我知道链接和加载的工作方式。我确切地知道里面发生了什么。 …

23
什么是“ 2的补码”?
我正在上计算机系统课程,并且在某种程度上一直在努力与Two's Complement交流。我想了解它,但是我读过的所有内容都没有为我带来帮助。我已经阅读了维基百科文章和其他各种文章,包括我的教科书。 因此,我想开始这个社区Wiki帖子,以定义Two's Complement是什么,如何使用它以及它如何在诸如强制类型转换(从有符号到无符号,反之亦然),按位操作和移位操作等操作期间影响数字。 我希望有一个清晰简洁的定义,使程序员容易理解。


6
您如何用Python表达二进制文字?
如何使用Python文字将整数表示为二进制数? 我很容易找到十六进制的答案: >>> 0x12AF 4783 >>> 0x100 256 和八进制: >>> 01267 695 >>> 0100 64 您如何使用文字在Python中表示二进制? 答案摘要 Python 2.5及更早版本:可以使用,int('01010101111',2)但不能使用文字来表示二进制。 Python 2.5和更早版本:无法表达二进制文字。 Python 2.6 beta:您可以这样做:0b1100111或0B1100111。 Python 2.6 beta:还将允许0o27或0O27(第二个字符是字母O)表示一个八进制。 Python 3.0 beta:与2.6相同,但将不再允许使用较旧027的八进制语法。


12
为什么我们使用Base64?
维基百科说 当需要对二进制数据进行编码时,通常需要使用Base64编码方案,该二进制数据需要在旨在处理文本数据的媒体上存储和传输。这是为了确保数据在传输过程中保持不变。 但是,不是因为我们的计算机存储的二进制数据就一直以二进制形式存储/传输数据,而这仅取决于您如何解释它?因此,无论您编码位模式010011010110000101101110为ManASCII或如TWFu为Base64,你最终将存储相同的位模式。 如果最终编码是用零和一表示的,并且每台机器和媒体都可以处理它们,那么将数据表示为ASCII还是Base64有什么关系呢? “旨在处理文本数据的媒体”是什么意思?他们可以处理二进制=>他们可以处理任何东西。 谢谢大家,我想我现在明白了。 当我们发送数据时,我们不能确定数据将以我们期望的格式解释。因此,我们发送双方都可以理解的以某种格式(如Base64)编码的数据。这样,即使发送方和接收方对相同内容的解释不同,但由于它们在编码格式上达成共识,因此不会错误地解释数据。 以Mark Byers为例 如果我要发送 Hello world! 一种方法是像ASCII一样发送 72 101 108 108 111 10 119 111 114 108 100 33 但是字节10在另一端可能无法正确解释为换行符。因此,我们使用ASCII的子集对其进行编码,如下所示 83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61 即使在接收器碰巧对其余字符集有不同的解释的情况下,以相同信息量传输更多数据为代价,这也确保了接收器可以按预期方式解码数据。

3
如何在Python3中将“二进制字符串”转换为普通字符串?
例如,我有一个像这样的字符串(返回值subprocess.check_output): >>> b'a string' b'a string' 无论我对它做了什么,它总是b'在字符串之前印有烦人的字样: >>> print(b'a string') b'a string' >>> print(str(b'a string')) b'a string' 是否有人对如何将其用作普通字符串或将其转换为普通字符串有任何想法?

11
如何以二进制形式打印(使用cout)数字?
我正在上一本关于操作系统的大学课程,我们正在学习如何从二进制转换为十六进制,从十进制转换为十六进制,等等。今天,我们刚刚学习了如何使用二进制补码(〜number)将有符号/无符号数字存储在内存中。 +1)。 我们有两个练习在纸上做,我希望能够在将作业提交给老师之前验证我的答案。我为前几个练习编写了一个C ++程序,但现在我对如何验证以下问题的答案感到困惑: char a, b; short c; a = -58; c = -315; b = a >> 3; 我们需要显示的二进制表示在内存中的a,b和c。 我已经在纸上做完了,它给了我以下结果(所有二进制表示形式都存储了两个补数之后的数字): a = 00111010(这是一个字符,所以1个字节) b = 00001000(这是一个字符,所以1个字节) c = 11111110 11000101(很短,所以2个字节) 有没有办法验证我的答案?在C ++中是否有一种标准的方法可以显示数字在内存中的二进制表示形式,还是我必须自己对每个步骤进行编码(计算二者的补码,然后转换为二进制)?我知道后者不会花很长时间,但是我很好奇是否有标准的方法可以这样做。


19
我可以在C或C ++中使用二进制文字吗?
我需要使用一个二进制数。 我试着写: const x = 00010000; 但这没有用。 我知道我可以使用与值相同的十六进制数00010000,但是我想知道C ++中是否存在用于二进制数的类型,如果没有,那么是否存在针对我的问题的另一种解决方案?
190 c++  c  binary 

12
C#二进制文字
有没有办法用C#编写二进制文字,例如用0x前缀十六进制?0b不起作用。 如果没有,什么是简单的方法?某种字符串转换?
186 c#  syntax  binary 


14
在python中将整数转换为二进制
为了将整数转换为二进制,我使用了以下代码: >>> bin(6) '0b110' 什么时候擦除“ 0b”,我用这个: >>> bin(6)[2:] '110' 我能做些什么,如果我想展现6的00000110,而不是110?
186 python  binary  integer 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.