社区
汇编语言
帖子详情
为什么-1由8位转16位后会变成16个1而不是0000000011111111?
ScorpioZZR
2003-08-19 04:50:01
本人才疏学浅,不懂得为什么-1由8位变成16位后为什么不是0000000011111111而是1111111111111111了?
解释清的一次性给10分了。
...全文
160
12
打赏
收藏
为什么-1由8位转16位后会变成16个1而不是0000000011111111?
本人才疏学浅,不懂得为什么-1由8位变成16位后为什么不是0000000011111111而是1111111111111111了? 解释清的一次性给10分了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hwenglish
2003-08-20
打赏
举报
回复
找一本计算机组成原理的教科书来看,上面详细的不得了.
W32API
2003-08-20
打赏
举报
回复
INTEL 采用符号位扩展
GhostAdz
2003-08-20
打赏
举报
回复
用我给你的公式算
似乎没有从8位到16位的公式的
当然-1有个规律
ff
ffff
都是负一
ScorpioZZR
2003-08-20
打赏
举报
回复
帮忙看看
http://expert.csdn.net/Expert/topic/2169/2169631.xml?temp=.5149347
kjhkuhiuyhk
2003-08-20
打赏
举报
回复
这是补码
0000000011111111 十进制为255 并不是负1
而1111111111111111值为-1
UNDERSTAND???
nicememory
2003-08-20
打赏
举报
回复
同意楼上的
ScorpioZZR
2003-08-19
打赏
举报
回复
=========
嗯,请问各位
是不是说只要从8位移到16位就是要全加1的??
GhostAdz
2003-08-19
打赏
举报
回复
先要知道一个负数的补码,在计算机里就认识这个
当然正数补码就是本身了
负数变补码 有个公式的
2的n次方减负数的绝对值
n表示你想把这个负数表示成几位的2进制
就说-1 表示成16位的话 它本身是负数当然要先变成补码如下:
2^16-|-1|=65536-1=65525=FFFFh=1111111111111111b
就这样
hwenglish
2003-08-19
打赏
举报
回复
你懂什么叫补码否!
如果不懂,就先了解什么叫补码先
zhyinfo
2003-08-19
打赏
举报
回复
应该是扩展吧。8位到16位的扩展有两种方式,一种是有符号扩展,低8位数的最高位是什么则
高8位均是什么 如 11111111——>11111111 11111111,cbw 和 cwd可实现上述扩展。
另一种是无符号数扩展,不管是什么8位数,高八位均位0
如 11111111-->00000000 11111111 直接把高位清零就可以了。
zhaobird
2003-08-19
打赏
举报
回复
是上面的大哥说的。
神农氏
2003-08-19
打赏
举报
回复
是为了保持有符号数的值不变。
16位的0000000011111111 的有符号数值是255,不是-1
而16位的1111111111111111 的有符号数值才是-1
Armv8/Armv9架构】-GIC/异常中断专题
做过arm底层安全的人(或终端安全)也许
会
知道,学习安全其实就是学习arm架构,而学习arm架构最核心的是什么? 最核心的就是学习和理解异常/中断。ARM有4个异常级别、2个执行状态、2个安全状态(armv9则
变成
4个),在...
C语言-第15章-位运算
文章目录15.1 移位运算15.2 按位与、或、求反、异或运算15.3 使用位运算符 15.1 移位运算 移位运算符可以向左或向右移动整数的二进制表示。C语言提供了两个移位运算符。 符号 含义 << 左移位 >> 右移位 运算符<<和>>的操作数可以是任意整数类型。对两个操作数都
会
进行整数提升,返回值的类型是左操作数提升后的类...
C语言位操作(
转
)
C语言位操作(
转
)
在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变 换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。
位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
c语言 字节某位取反 &=,2017年计算机二级考点归纳:C语言位运算
15.1 位运算的含义及应用1.位的概念大多数计算机系统的内存储器是由众多的存储单元构成的。在微机中,每个存储单元是1个字节,它由
8位
二进制数构成,可以表示28=256种信息,各位的编号从0~7,最左边的位(第7位)是位,最右边的位(第0位)是最低位。由于二进制本身的特点,各位上的数字不是1,就是0。本章中的位就是指上述提到的二进制位,本章中的位运算就是指对这些二进制的位进行逻辑运算、移位运算等操...
C语言中的位运算
C语言位操作(
转
) 在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。 位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或
汇编语言
21,459
社区成员
41,602
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章