Int8()
MATLAB与c语言等关于int()的差别
x=int8(129)得到的结果为127(0111 1111),本以为结果应该为-1:
129=1000 0001(2^7+1)
转换为带符号的,应该就为-1(最高位为符号位,剩下不变)
尝试了x=int8(300),结果显示为127,经过几个测试,显示大于127的数值的结果都是127.同理,小于-128的数,全部变为-128.
初步得出结论:int8()的转换原理为:
i
n
t
8
(
x
)
=
{
−
128
,
x
<
−
128
x
,
−
128
≤
x
<
127
127
,
x
≥
127
int8(x) =\left\{ \begin{aligned} -128&, x < -128 \\ x&, -128\leq x < 127 \\ 127&, x\ge 127 \end{aligned} \right.
int8(x)=⎩⎪⎨⎪⎧−128x127,x<−128,−128≤x<127,x≥127