嵌入式C开发---用循环实现左移右移

//将n左移m位
int byte_to_left_move(int n , int m)
{
    int i , ret = 1 ;
    if(n == 0 || n < 0)
    {
        return ;
    }
    if(n == 1)
    {
        for(i = 0 ; i < m ; i++)
            ret *= n * 2 ;
    }
    if(n > 1)
    {
        for(i = 0 ; i < m ; i++)
             ret *= n ;
    }
    return ret ;
}
//将n右移m位
int byte_to_right_move(int n , int m)
{
    int i , ret = 1 ;
    if(n == 0 || n < 0)
    {
        return ;
    }
    if(n == 1)
    {
       ret = 0 ;
    }
    if(n > 1)
    {
        for(i = 0 ; i < m ; i++){
            n /= 2 ;
        }
        ret = n ;
    }
    return ret ;
}

闲着无聊,自己写了两个API接口,测试通过,但可能还没完善,不过初步的实现了将一个数左移右移N位的算法,算法实现非常简单,就是循环的乘和除,这时候明白了,其实基础是很重要的,比如开始学习C语言的时候,老师教的累乘和累加的算法,尽管简单,但还是用途很大,这两个API也有类似的,比如左移的接口就有累乘的性质在里面。

时间: 2024-08-04 01:30:22

嵌入式C开发---用循环实现左移右移的相关文章

《嵌入式Linux应用开发完全手册》——第1章 嵌入式Linux开发概述 1.1 嵌入式系统介绍

第1章 嵌入式Linux开发概述 本章目标 了解嵌入式系统的概念及发展历史 anniu 了解ARM处理器 anniu 了解各类嵌入式操作系统 anniu 1.1 嵌入式系统介绍 1.1.1 嵌入式系统的定义和特点 1.嵌入式系统的定义 嵌入式系统的定义为:以应用为中心.以计算机技术为基础.软硬件可裁剪.适用于应用系统,对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统.它的主要特点是嵌入.专用. 从20世纪70年代起,微型机以小型.价廉.高速数值计算等特点迅速走向市场,它所具备的智能化水平

ListBox实现上移,下移,左移,右移的简单实例

 这篇文章主要介绍了ListBox实现上移,下移,左移,右移的简单实例.需要的朋友可以过来参考下,希望对大家有所帮助    代码如下: <html> <head>     <title>Javascript版选择下拉菜单互移且排序</title>     <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </hea

《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-03项目生命周期五大阶段

02-03项目生命周期五大阶段 嵌入式系统开发之道--菜鸟成长日志与项目经理的私房菜 我们前面讲过项目的定义,特别谈到每件项目都是独一无二的,都有各自的目标.可应用的资源.必须面对的限制与风险等.但所谓的知识体系就是要设法异中求同,通过分析与比较足够数量且不同种类的案例,试图归纳出适用于所有项目的思想与方法. 这么做并不牵强,因为不同项目间确实具有共同的特性,可以使用相同的思想与方法论来执行,就如同我们的本行-嵌入式系统与电子产品开发,如果不能在不同的项目间秉持共通的概念,工程人员免不了要多走很

《嵌入式Linux开发实用教程》——1.1 Linux基本命令

1.1 Linux基本命令 嵌入式Linux开发实用教程 在学习嵌入式Linux开发的过程中,将经常使用到Linux的操作命令.实际上,Linux系统中的命令也是为实现特定的功能而编写的,而且绝大数的命令是用C语言编写的.有些实用性强的程序被广泛使用和传播,逐渐地演变成Linux的标准命令.但是Linux的操作命令繁多,本节将在U-Boot.Linux移植过程中常用到的Linux操作命令罗列出来进行讲解,为后续的学习做良好的铺垫.读者不要认为这是Linux简单命令则不屑一顾,嵌入式Linux学习

Yocto Project用于嵌入式Linux开发的专业级开源工具

Yocto Project 是一个开源协作项目,它提供了一些模板.工具和方法来支持面向嵌入式产品的自定义 Linux 系统,不管硬件架构是什么.我想要告诉那些对 yocto 这个名称不甚理解的用户的是,术语 yocto 是最小的 SI 单元.最为一个前缀,yocto 表示 10^-24. 本文将提供一个分步指导,向您介绍如何使用 Yocto Project 的行业标准开源工具为嵌入式设备创建自定义的 Linux 操作系统,并使用 QEMU 在一台虚拟机中启动操作系统.Yocto Project

linux-学习嵌入式ARM开发,有什么好的书籍推荐?

问题描述 学习嵌入式ARM开发,有什么好的书籍推荐? 我已经买了一本鸟哥的linux基础私房菜?请各位大神推荐好的书籍?谢谢! 解决方案 底层驱动的话:<linux设备驱动开发详解> 宋宝华 <ARM体系结构与编程>杜春雷 要是应用的话:<unix高级环境编程>最好看看韦东山的视频教程帮助非常大 解决方案二: http://wenku.baidu.com/link?url=PbEN3igPGU_ZZaxvjyhvkqoI5aDfObTIwNmLB4qKkOyCoHUZx

左移 右移 与 或-关于左移右移与或的作用

问题描述 关于左移右移与或的作用 希望 有耐心的大牛给解惑 public class DiskBasedCache implements Cache { /** Map of the Key CacheHeader pairs */private final Map<String CacheHeader> mEntries = new LinkedHashMap<String CacheHeader>(16 .75f true);/** Total amount of space

《嵌入式 Linux C 语言应用程序设计(修订版)》——1.5 嵌入式系统开发概述

1.5 嵌入式系统开发概述 嵌入式 Linux C 语言应用程序设计(修订版) 1.5.1 嵌入式系统开发流程 嵌入式系统的开发流程与通用系统的开发流程有较大的区别,其设计流程如图1.15所示. 下面对系统各个模块进行简要说明. 系统需求分析:根据需求,确定设计任务和设计目标,制定设计说明书. 体系结构设计:描述系统如何实现所述的功能需求,包括对硬件.软件和执行装置的功能划分以及系统的软件.硬件选型等. 硬件/软件协同设计:基于体系结构的设计结果,对系统的硬件.软件进行详细设计.一般情况下嵌入式

《嵌入式 Linux C 语言应用程序设计(修订版)》一1.5 嵌入式系统开发概述

1.5 嵌入式系统开发概述 嵌入式 Linux C 语言应用程序设计(修订版) 1.5.1 嵌入式系统开发流程 嵌入式系统的开发流程与通用系统的开发流程有较大的区别,其设计流程如图1.15所示. 图1.15 嵌入式系统的开发流程 下面对系统各个模块进行简要说明. 系统需求分析:根据需求,确定设计任务和设计目标,制定设计说明书. 体系结构设计:描述系统如何实现所述的功能需求,包括对硬件.软件和执行装置的功能划分以及系统的软件.硬件选型等. 硬件/软件协同设计:基于体系结构的设计结果,对系统的硬件.