use*_*886 17 language-agnostic binary numbers
为什么大多数计算机编程语言都不允许二进制数用作十进制或十六进制?
为什么不允许二进制数?
奖励积分!...什么语言都允许二进制数?
编辑
哇! - 因此大多数人认为这是因为简洁和可怜的旧"波浪"认为这是由于二进制表示的技术方面.
phi*_*hag 33
因为十六进制(和很少八进制)文字更紧凑,使用它们的人通常可以比解密二进制数更快地在十六进制和二进制之间进行转换.
Python 2.6+允许二进制文字,Ruby和Java 7也是如此,您可以使用下划线使字节边界变得明显.例如,十六进制值0x1b2a现在可以写为0b00011011_00101010.
Mot*_*tti 10
在C++ 0x中,用户定义的文字将支持二进制数,我不确定它是否会成为标准的一部分,但最坏的情况是你可以自己启用它
int operator "" _B(int i);
assert( 1010_B == 10);
Run Code Online (Sandbox Code Playgroud)
小智 8
为了使位表示有意义,您需要知道如何解释它.您需要指定您正在使用的二进制数的类型(有符号/无符号,二进制补码,一对一补,有符号幅度).
我曾经使用过的唯一支持二进制数的语言是硬件描述语言(Verilog,VHDL等).它们都有严格(通常是令人困惑的)定义,如何处理以二进制形式输入的数字.
NAME
perlnumber - semantics of numbers and numeric operations in Perl
SYNOPSIS
$n = 1234; # decimal integer
$n = 0b1110011; # binary integer
$n = 01234; # octal integer
$n = 0x1234; # hexadecimal integer
$n = 12.34e-56; # exponential notation
$n = "-12.34e56"; # number specified as a string
$n = "1234"; # number specified as a string
Run Code Online (Sandbox Code Playgroud)
十六进制和八进制只是编写二进制的较短方法。您真的希望在代码中定义一个 64 字符的长常量吗?
| 归档时间: |
|
| 查看次数: |
2380 次 |
| 最近记录: |