关于十六进制和八进制前的“0x”“0”是数字0还是字母O

1、八进制数是一种逢八进一的计数体制,基数是8,用0~7表示,如077。

2、八进制数以数字0开头。

3、十六进制数是一种逢十六进一的计数体制,基数是16,用0~9,A~F表示,如0xFF或0XFF。

4、十六进制数以数字0和字母x的组合0x或0X开头。其中字母x是不区分大小写的,即0x与0X等价。

Note:

输出打印八进制数时 %o 这里是字母 o

int a = 12; 把数 a 分别 以十进制,八进制,十六进制形式 输出打印

printf("%d,%o,%x", a, a, a);//不显示数制前缀

printf("%#d,%#o,%#x", a, a, a);//显示数制前缀

 

### 八进制十六进制的表示方法 在Python中,八进制整数可以通过缀`0o`或`0O`来表示。例如,八进制数值`17`可以写作`0o17`[^1]。 对于十六进制而言,在Python里通过缀`0x`或`0X`来标记。比如,十六进制值`AF`会被写成`0xAF`。 ### 数字系统的相互转换 #### 从其他进制到十进制 当涉及到不同基数间的转换时,可利用内置函数`int()`实现。此函数接受两个参数:字符串形式的目标数字及其原始基底。下面展示如何将八进制串'17'转为十进制: ```python print(int('17', 8)) # 输出: 15 ``` 同样地,要将十六进制串'AF'变为十进制,则执行如下操作: ```python print(int('AF', 16)) # 输出: 175 ``` #### 十进制至目标进制 为了把一个十进制数转变为指定的进制格式,应当采用`format()`函数或是f-string语法糖。这里给出几个例子说明怎样完成这些转变过程: - 将十进制数26分别变换成八进制十六进制表达方式: ```python decimal_number = 26 octal_representation = format(decimal_number, 'o') hexadecimal_representation = format(decimal_number, 'x') print(f"Octal representation of {decimal_number} is {octal_representation}") # 输出: Octal representation of 26 is 32 print(f"Hexadecimal representation of {decimal_number} is {hexadecimal_representation}") # 输出: Hexadecimal representation of 26 is 1a ``` 另外一种更简洁的方式是使用f-string直接嵌入转换逻辑: ```python number = 26 print(f"{number:o}, {number:x}") # 使用小写字母显示 # 或者 print(f"{number:#o}, {number:#x}") # 带有缀的形式 ``` 上述代码片段展示了两种不同的输出风格——不带任何修饰符的标准版本以及带有相应缀(`0o`, `0x`)的版本。 #### 进制之间的直接转换 如果想要绕过中间态(即先转化为十进制再做进一步处理),可以直接运用位运算技巧来进行快速高效的操作。不过这种方式较为复杂且不易读取维护,因此通常推荐遵循常规路径进行多步转换。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值