c语言<<,>>应用理解
不讲原理,左移低位补零,右移高位补零。在使用中总结的规律,在进制转换中遇到10机制的左移或右移,可以将变量乘以2的n次方或者除以2的n次方,左乘,右除,但是乘除要考虑高位的数据溢出,低位数据的丢失。例如十进制数5右移1位就会造成数据的丢失因为5除以2为2.5 ,0.5就会丢失,在二进制数中显示:5的二进制是101右移以为就是10就是10进制数2,高位溢出的情况就是例如定义了一个int a = 48,uint8_t a = 48,把这两个数字同时左移3位,int类型的a经过转移三位就是384 ,而无符号8位int类型就是128.因为int类型占4字节,总共是32位最高位是32位48左移三位并不会溢出,而uint8_t就会造成高位溢出导致两结果不同。若把uint8_t换成16位或者32位结果就可以一样
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用