标签:
python 中十六进制的转变方法
a=15;
print(hex(a))
//print:0xf
char *
使用了机器的全字长小端法:大多数Intel兼容机规则(现在最为常用)
大端法:IBM 和Sun Microsystems
printf(“%.2x “)解析
摘自K&R《C程序设计语言》:
点号,用语分隔字段宽度和精度
表示精度的数。对于字符串,它指定打印的字符的最大个数;对于e、E或f转换,它指
定打印的小数点后的数字位数;对于g或G转换,它指定打印的有效数字位数;对于整型数,它指定打印的数字位数(必要时可填充位0以达到要求的宽度)。
在使用ASCII码作为字符码的任何系统都会表示相同的结果,与字节顺序和字大小规则无关。因而,文本数据比二进制数据具有更强的平台独立性
Java使用Unicode 来表示字符串。对于C语言也有支持Unicode的程序库
即使是相同的一段代码,在不同的机器类型使用不同,不兼容的指令,因此二进制代码是不兼容的。
很简单
ACM玩的很多了,就不说了
||
&&
惰性求值逻辑右移
算术右移
潜在问题
用这种方式理解补码,是一种新的不错的思路
12345U
对于有符号的数,即补码
对比逻辑右移,和算术右移
截断一个数到k位,即舍去w-k的高位。
对于无符号数截断x它到k位的结果相当于
对于有符号的数x。
>>
算数右移,>>>
才是逻辑右移x+y
= (x+y)
mod 2^k
溢出会舍去
阿贝尔群,群论。
大多数计算机使用同样的机器指令来执行有符号和无符号之和。
x(有符号+)y= U2T(T2U(x+y) mod 2^w)
正溢出,正常,负溢出。
所以最小的那个负数的相反数逆元还是最小的那个负数。
对于任意整数x
。-x
和~x+1
得到的结果完全一样。
对于无符号和补码乘法,乘法运算的位级表示都是一样的,是同一条指令。
无符号和补码相乘出来的两个数的低W位 永远相等。证明见书。
对于无符号类型或整数,直接右移不会有任何问题。
对于负数,最后的值为-48.3,会舍入成 -49,而不是-48.
偏置
C语言
(x<0 ? (x+(1<<k)-1):x)>>k
等价于x/pwr2k ,pwr2k=2^k
之后看,现在先过别的。
标签:
原文地址:http://blog.csdn.net/zy691357966/article/details/51348779