主站蜘蛛池模板:
粮油机械设备有限公司|
浙江矿山机械有限公司|
新昌华亿机械有限公司|
东莞市高臻机械设备有限公司
|
滕州市美力机械有限公司|
湖州三一重工有限公司|
浙江斯耐达机械工具有限公司|
机械维修 有限公司|
富江机械制造有限公司|
上海利昆机械有限公司|
新乡市东源机械有限公司|
上海机械实业有限公司|
苏州精密机械有限公司|
武汉鑫金泽机械有限公司|
常州小松工程机械有限公司招聘|
沈阳精密机械有限公司|
山东工大机械有限公司|
无锡威华机械有限公司|
广州新麦机械有限公司|
北京龙泰机械设备安装有限公司
|
合肥康恒机械有限公司|
上海诺 机械有限公司|
沈阳德恒机械制造有限公司
|
百超玻璃机械有限公司|
江苏汤姆包装机械有限公司|
万工机械制造有限公司|
邹平宏鑫机械有限公司|
高邮和益机械有限公司|
绍兴 机械有限公司|
威海化工机械有限公司|
西安北村精密机械有限公司|
常州拓美威精密机械有限公司|
常州龙鹏机械有限公司|
莱州市华弘机械有限公司|
旭英机械有限公司招聘|
安徽中晨机械有限公司|
开封良益机械有限公司|
无锡市 机械有限公司|
上海精工机械有限公司|
无锡兆立精密机械有限公司|
昆山环保机械有限公司|
星精密机械有限公司|
杭州爱科机械有限公司|
山东浩信机械有限公司|
昆山塑料机械有限公司|
萍乡萍钢安源钢铁有限公司|
广东机械设备有限公司|
苏州机械制造有限公司|
杭州大禹机械有限公司|
上海华威焊割机械有限公司|
嘉兴机械有限公司招聘|
襄阳 机械 有限公司|
江苏化工机械有限公司|
欧诺机械 有限公司|
天工机械制造有限公司|
压机械制造有限公司|
山东鑫鑫机械有限公司|
新乡市豫新起重机械有限公司|
临西中伟机械有限公司|
四川瑞迪佳源机械有限公司|
常州万高机械制造有限公司|
深圳龙润彩印机械设备有限公司|
重庆信鼎精密机械有限公司|
浙江云广机械制造有限公司|
宁波迪恩机械有限公司|
宝捷精密机械有限公司|
三明机械制造有限公司|
龙岩市机械有限公司|
中山 机械 有限公司|
秦皇岛机械有限公司|
广东信昌机械有限公司|
启益电器材机械有限公司招聘|
邢台钢铁有限公司官网|
浙江嘉元机械制造有限公司|
铁岭圣添机械有限公司|
天门仙粮机械有限公司|
无锡精派机械有限公司|
太平洋机械有限公司|
东莞机械设备制造有限公司
|
世翔精密机械制造有限公司|
湖南金牛重工机械有限公司|
山东大佳机械有限公司|
顺昌机械制造有限公司|
沈阳凯力拓机械设备有限公司
|
泰田液压机械有限公司|
宁波固奇包装机械制造有限公司
|
嘉泰数控机械有限公司|
旭众食品机械有限公司|
河北澳金机械设备有限公司|
久隆久兴机械有限公司|
瑞迪机械实业有限公司|
精密达机械有限公司|
浙江宇丰机械有限公司|
张家港重工有限公司|
台进精密机械有限公司|
河南东盈机械设备有限公司|
宁波力盟机械有限公司|
大同机械 有限公司|
上海瑞阳机械有限公司|
潍坊元鸣机械有限公司|
青岛圣诺机械有限公司|
农业机械设备有限公司|
上海大松机械有限公司|
浙江森工木工机械有限公司|
台州欧玮机械有限公司|
哈克农业机械装备制造有限公司
|
武汉包装机械有限公司|
重庆江增船舶重工有限公司|
文水海威钢铁有限公司|
东莞正扬电子机械有限公司|
温州机械制造有限公司|
济南捷迈数控机械有限公司|
浙江赛力机械有限公司|
马鞍山 机械制造有限公司|
杭州正驰达精密机械有限公司|
上海欧特莱阀门机械有限公司|
河北输送机械有限公司|
天津国际机械有限公司|
常州浦发机械有限公司|
宜春江特机械传动有限公司|
苏州立注机械有限公司|
苏州辽鞍机械有限公司|
大连橡胶塑料机械有限公司|
常州市日中精密机械有限公司
|
河北东方富达机械有限公司|
农友机械设备有限公司|
南京益腾机械制造有限公司|
成都海科机械设备制造有限公司|
山东科恳机械制造有限公司|
杭州科豪机械有限公司|
艾莎钢铁天津有限公司|
南兴木工机械有限公司|
江苏宏威重工机床制造有限公司
|
晋江机械制造有限公司|
盐城三益石化机械有限公司|
山东岳工机械有限公司|
昆山施耐特机械有限公司|
台州市双辉机械设备有限公司
|
南京儒一航空机械装备有限公司
|
河南豫工机械有限公司|
河北常富机械有限公司|
四川阳光机械有限公司|
上海赛峰包装机械设备有限公司|
威海环宇化工机械有限公司|
苏州新风机械有限公司|
江苏沃元精密机械有限公司|
江阴市液压机械有限公司|
浙江斯耐达机械工具有限公司|
湖南汇杰机械设备有限公司|
苏州锐豪机械制造有限公司|
林州市振晨重工装备制造有限公司|
焦作市虹起制动器有限公司|
四川川宏机械有限公司|
沈阳维用精密机械有限公司招聘
|
温州中环机械设备有限公司
|
广州市勤达机械设备有限公司
|
广东省建筑工程机械施工有限公司|
志高机械有限公司官网|
明毅电子机械有限公司|
浙江天风塑料机械有限公司|
天津动力机械有限公司|
河南天成矿山起重机有限公司
|
东莞兆泰机械设备有限公司|
常州倍安特动力机械有限公司|
山东矿山机械有限公司|
上海工程机械厂有限公司|
东莞市森人机械有限公司|
固达机械制造有限公司|
河北液压机械有限公司|
新疆丰泰钢铁有限公司|
瑞安瑞泰机械有限公司|
诺尔起重设备有限公司|
南通武藏精密机械有限公司招聘|
宁波液压机械有限公司|
徐州明文机械有限公司|
上海 起重设备有限公司|
烟台莫深机械设备有限公司|
东莞正为机械有限公司|
天津金岸重工有限公司|
温州韦盛机械有限公司|
无锡塑机械有限公司|
上海凯奇机械设备有限公司|
荃胜精密机械有限公司|
苏州机械设备有限公司|
济宁福瑞得机械有限公司|
南通 机械有限公司|
浙江飞挺机械有限公司|
兰州长征机械有限公司|
东莞市卓越机械有限公司招聘
|
北京加隆工程机械有限公司|
青岛奥硕数控机械有限公司|
安徽机械制造有限公司|
宁波利豪机械有限公司|
优瑞纳斯液压机械有限公司|
大方起重机器有限公司|
东莞市凯奥机械有限公司|
穗华机械设备有限公司|
上海赛峰包装机械设备有限公司
|
湖北 机械制造有限公司|
上海重工机械有限公司|
诸城市盛和机械有限公司|
成都成邦探矿机械设备有限公司
|
湖州机械制造有限公司|
成都海科机械设备制造有限公司|
潍坊广德机械有限公司|
广州伟基机械有限公司|
东莞共荣精密机械有限公司|
东莞市 五金机械有限公司|
江苏永康机械有限公司|
上海鑫水机械有限公司|
上海长空机械有限公司|
阿特拉斯机械设备有限公司|
苏州阔泽精密机械有限公司|
江阴市祥达机械制造有限公司|
深圳市塑胶机械有限公司|
南通液压机械有限公司|
磊蒙机械设备有限公司|
重庆墨龙机械有限公司|
山东瀚业机械有限公司|
潍坊西泰机械有限公司|
天津菲特机械有限公司|
上海西马特制药机械有限公司|
恒江机械制造有限公司|
内蒙古机械有限公司|
招商局重工(江苏)有限公司|
成都鑫泽机械有限公司|
江苏骏马压路机械有限公司|
上海瑞派机械有限公司|
高义钢铁有限公司电话|
强大印刷机械有限公司|
郑州昌利机械制造有限公司|
江苏鹤溪机械有限公司|
诸城市万兴机械有限公司|
厦门国桥机械有限公司|
中核华兴机械化工程有限公司|
河南乾坤工程机械有限公司|
浙江斯耐达机械工具有限公司|
山东锦坤机械有限公司|
邹平县宏鑫机械制造有限公司|
宁波市鸿博机械制造有限公司|
山东泗水鑫峰面粉机械有限公司|
常州昊博机械有限公司|
江西新明机械有限公司|
山东米科思机械设备有限公司
|
茂名重力石化机械制造有限公司|
山东宁联机械制造有限公司
|
江苏苏能机械有限公司|
青岛正机械有限公司|
石家庄工程机械有限公司|
上海徽机械有限公司|
山东国丰机械有限公司|
博凯机械上海有限公司|
珠海市机械有限公司|
佛山丰又丰机械有限公司|
浙江印刷机械有限公司|
嘉兴市机械有限公司|
邢台 机械有限公司|
东莞市峰茂机械设备有限公司|
河南康迪机械有限公司|
江苏迪鼎机械有限公司|
临工工程机械有限公司|
青岛机械利有限公司|
江阴江顺精密机械零部件有限公司|
重庆海迅机械制造有限公司|
南通贝思特机械工程有限公司
|
山东枭隆机械有限公司|
东远机械昆山有限公司|
单县江华机械有限公司|
唐山前进钢铁有限公司|
重庆机械租赁有限公司|
郑州中嘉重工有限公司|
浙江起步儿童用品有限公司|
东莞市鑫国丰机械有限公司|
无锡水登机械有限公司|
山东鲁新起重设备有限公司|
精密机械配件有限公司|
食品机械设备有限公司|
无锡东源机械制造有限公司|
江苏精明机械有限公司|
沈阳六和机械有限公司|
烟台 机械有限公司|
盐山宏润重工有限公司|
江阴派格机械设备有限公司|
新乡市起重机厂有限公司|
江苏梅花机械有限公司|
山东纺织机械有限公司|
合肥浩凯机械有限公司|
营口金辰机械有限公司|
上海百劲机械有限公司|
连云港市机械有限公司|
天津同盈钢铁有限公司|
海宁美惠机械有限公司|
丹阳荣嘉精密机械有限公司|
扬州 机械 有限公司|
台湾晁群机械有限公司|
宁波宁塑机械有限公司|
常州柳工机械有限公司|
东莞市鼎祥通用机械设备有限公司|
上海炬钢机械制造有限公司|
山东大汉建设机械有限公司|
安徽永成电子机械技术有限公司|
佛山市玻璃机械有限公司|
上海戴服特包装机械有限公司|
杭州海特机械有限公司|
山东峻峰起重机械有限公司|
嘉兴机械制造有限公司|
洛阳耿力机械有限公司|
西安环宇机械制造有限公司
|
勤堡精密机械有限公司|
天津钢铁贸易有限公司|
南通新兴机械制造有限公司|
北京机械施工有限公司|
巨荣机械制造有限公司|
江苏莱宝机械制造有限公司|
杭州联德机械有限公司|
东莞机械设备有限公司|
高邮和益机械有限公司|
渤海重工管道有限公司|
荣精密机械有限公司|
江苏联顺机械有限公司|
福建晋工机械有限公司|
无锡通灵机械有限公司|
漳州南方机械有限公司|
起重机械制造有限公司|
南通铁军机械有限公司|
新疆八一钢铁有限公司|
苏州恒迈精密机械有限公司|
威马农业机械有限公司|
宿迁机械制造有限公司|
唐山国义钢铁有限公司|
东莞市工业机械有限公司|
山东天力液压机械有限公司|
荆州华力机械有限公司|
南京工程机械有限公司|
舟山荣德机械有限公司|
机械成套设备有限公司|
浙江三叶机械有限公司|
江苏医疗机械有限公司|
皋兰兰鑫钢铁有限公司|
宁波瑞基机械有限公司|
中天印刷机械有限公司|
广东金凯锐机械技术有限公司|
江苏汉鼎机械有限公司|
温州中环机械设备有限公司|
陕西机械制造有限公司|
济南大彤机械设备有限公司|
济南焊达机械有限公司|
上海鑫斌机械有限公司|
中山精密机械有限公司|
东营海河机械有限公司|
中施机械设备有限公司|
上海起重机有限公司|
山东正丰钢铁有限公司|
广意永雄机械有限公司|
福海鑫钢铁有限公司|
沂水阳东机械有限公司|
苏州伟鼎机械设备有限公司|
上海华迪机械有限公司|
宁波美亚特精密机械有限公司|
海的动力机械有限公司|
湖南润通机械制造有限公司|
中山松德印刷机械有限公司|
徐州博丰钢铁有限公司|
江阴博丰钢铁有限公司|
山东临工工程机械有限公司招聘|
湖州卓信机械有限公司|
天津市三鼎包装机械有限公司
|
江西四通重工机械有限公司|
广州市科展机械设备有限公司
|
浙江伟焕机械制造有限公司|
东莞市固达机械制造有限公司|
荣龙精密机械有限公司|
湖北川谷机械有限公司|
武汉益达建设机械有限公司|
渭南金狮机械有限公司|
宏鑫机械设备有限公司|
机械设备有限公司招聘|
禹城市华普机械设备有限公司
|
东莞市联顺机械有限公司|
江苏沃元精密机械有限公司|
常州亚美柯机械设备有限公司
|
群峰机械制造有限公司|
汉虹精密机械有限公司|
广东日钢机械有限公司|
穗华机械设备有限公司|
玉环双友机械有限公司|
山东威曼机械有限公司|
湖州核汇机械有限公司|
河北中浩机械制造有限公司|
威海行雨化工机械有限公司|
食品机械设备有限公司|
宁波延晟机械有限公司|
佰源机械有限公司欠款|
上海香宝机械设备有限公司|
上海长空机械有限公司|
浙江全兴机械制造有限公司|
深圳精密机械有限公司|
深圳市合发齿轮机械有限公司|
山东新船重工有限公司|
台州嘉瑞机械有限公司
|
常州宝菱重工机械有限公司|
廊坊德基机械有限公司|
张家港市机械制造有限公司|
马氏木工机械有限公司|
东营恒诚机械有限公司|
芜湖富鑫钢铁有限公司|
新华机械制造有限公司|
天津市天重江天重工有限公司|
韶瑞重工有限公司官网|
江苏特佳机械有限公司|
河南重型机械有限公司|
青岛诺恩包装机械有限公司|
东莞市台铭数控机械有限公司|
徐州普特工程机械有限公司|
杭州杭重机械有限公司|
福州 机械制造有限公司|
厦门机械工业有限公司|
郑州市鑫宇机械制造有限公司|
机械化工程有限公司|
宏源机械设备有限公司|
辛集澳森钢铁有限公司|
葛洲坝机械船舶有限公司|
江门市科杰机械自动化有限公司
|
广州市力进食品机械有限公司
|
临沂铸信机械有限公司|
凯岛起重机械有限公司|
常州艾隆精密机械有限公司
|
上海电工机械有限公司|
邢台德龙钢铁有限公司招聘|
重庆机械制造有限公司|
食品包装机械有限公司|
常州超通机械有限公司|
苏州工业园区嘉宝精密机械有限公司|
济南 液压机械有限公司|
苏州科瑞机械有限公司|
南京远景机械有限公司|
东莞市康机械有限公司|
上海轩特机械设备有限公司|
青岛圣诺机械有限公司|
温州惠利机械有限公司|
杭州海陆重工有限公司|
东泰盛机械有限公司|
义乌联动机械有限公司|
上海红重机械装备有限公司|
杭州双林机械有限公司|
江阴机械制造有限公司怎么样|
山东泰峰起重设备制造有限公司|
机械成套设备有限公司|
上海 精密机械制造有限公司|
泉州市工程机械有限公司|
大连工程机械有限公司|
上海德机械设备有限公司|
哈尔滨纳诺机械设备有限公司|
山东永锋钢铁有限公司|
湖南湘船重工有限公司|
申光洗涤机械有限公司|
远大机械制造有限公司|
无锡锡昌机械有限公司|
天津润机械有限公司|
盐城机械制造有限公司|
维特根机械有限公司|
工程机械制造有限公司|
赣云食品机械有限公司|
苏州伟鼎机械设备有限公司|
村田机械上海有限公司|
烟台工程机械有限公司|
山东新船重工有限公司|
上海贯博起重设备有限公司
|
河南黎明路桥重工有限公司|
浙江华球机械制造有限公司|
上海大恒光学精密机械有限公司|
陕西重型机械制造有限公司|
广东包装机械有限公司|
深圳中施机械设备有限公司|
济宁工程机械有限公司|
秦皇岛安丰钢铁有限公司|
山东小康机械有限公司|
濮阳市机械有限公司|
无锡东元精密机械有限公司|
中阳钢铁有限公司招聘|
武汉千里马工程机械有限公司|
海华机械制造有限公司|
张家港海狮洗涤机械有限公司|
珠海粤裕丰钢铁有限公司|
东莞市数控机械有限公司|
宝鸡中车时代工程机械有限公司
|
济柴聊城机械有限公司|
张家港市家源机械有限公司|
北京加隆工程机械有限公司|
北京明日之星玻璃机械有限公司|
山东硕诚机械有限公司|
联程机械宁波有限公司|
上海紫宏机械有限公司|
青岛隆硕农牧机械制造有限公司
|
诺尔起重设备有限公司|
锦州俏牌机械有限公司|
上海贯博起重设备有限公司|
浙江康思特动力机械有限公司|
辽宁机械制造有限公司|
济南金梭机械制造有限公司
|
广州德机械有限公司|
青州市国发包装机械有限公司|
太仓九本机械有限公司|
唐山龙泉机械有限公司|
广州市 工程机械有限公司|
江苏谷登工程机械装备有限公司
|
潍坊大众机械有限公司|
佛山慧谷机械有限公司|
徐州徐工基础工程机械有限公司
|
青岛新型建设机械有限公司|
上海伍行机械设备有限公司|
广东华三行工程机械有限公司|
青岛农业机械有限公司|
陕西鑫钢机械有限公司|
济南建设机械有限公司|
宝鸡万工机械制造有限公司|
惠州德钢机械有限公司|
太原重工轨道交通设备有限公司
|
南通新兴机械制造有限公司|
合肥中辰轻工机械有限公司|
苏州新和机械有限公司|
科华机械制造有限公司|
海宁市腾达机械有限公司|
舟山中天重工有限公司|
中船重工环境工程有限公司|
曲阜兴运输送机械设备有限公司
|
老挝第一钢铁有限公司|
登福机械上海有限公司|
青岛北船重工有限公司|
锦州万得包装机械有限公司|
宁波江北机械有限公司|
商丘机械设备有限公司|
南京高立工程机械有限公司|
青岛海佳机械有限公司|
唐山佳鑫机械配件有限公司|
银三环机械有限公司|
飞扬机械制造有限公司|
苏州拓博机械有限公司|
镇江机械设备有限公司|
江阴乐帕克智能机械有限公司|
上海熊猫机械有限公司|
青岛西城铸造机械有限公司|
浙江新立机械有限公司|
山东浩信机械有限公司|
宁波塑料机械有限公司|
均强机械苏州有限公司|
河北小犟牛工程机械有限公司|
北京工程机械有限公司|
广州乾能机械制造有限公司|
温州光明印刷机械有限公司|
重庆龙文机械设备有限公司
|
长沙中传机械有限公司|
缙云县机械有限公司|
扬州巨人机械有限公司|
马长江钢铁有限公司|
杭州誉球机械有限公司|
浙江四和机械有限公司|
江苏博森机械制造有限公司|
粤裕丰钢铁有限公司|
北京大森长空包装机械有限公司|
建友机械设备有限公司|
泰兴机械制造有限公司|
新进精密机械苏州有限公司|
南京橡塑机械有限公司|
昆山海进机械有限公司|
宏机械铸造有限公司|
四川机械设备有限公司|
天津钢管钢铁贸易有限公司|
溧阳机械制造有限公司|
佛山星光传动机械有限公司|
烨隆精密机械有限公司|
中实洛阳重型机械有限公司|
潍坊坊通机械有限公司|
东莞兆泰机械设备有限公司|
佛山突破机械有限公司|
无锡森本精密机械有限公司|
东莞市鸿铭机械有限公司|
苏州铭峰精密机械有限公司|
柳溪机械设备有限公司|
滨州市机械有限公司|
上海满鑫机械有限公司|
建湖华祥机械有限公司|
无锡双象橡塑机械有限公司|
江苏金梧机械有限公司|
珠海仕高玛机械设备有限公司|
唐山安丰钢铁有限公司|
东阳机械设备制造有限公司|
浙江锦峰纺织机械有限公司|
上海世达机械工具厂有限公司|
马鞍山机械有限公司|
自动化机械有限公司|
郑州双狮粮油机械有限公司|
广州起重机械有限公司招聘|
美心翼申机械有限公司|
山东天路重工有限公司|
启瑞机械广州有限公司|
青岛塑料机械有限公司|
重庆恒科机械制造有限公司
|
浙江传动机械有限公司|
上海益达机械有限公司|
安丰钢铁有限公司电话|
大洋机械制造有限公司|
恒天九五重工有限公司|
福州闽台机械有限公司|
山东鲁成起重机械有限公司|
台州 精密机械有限公司|
佛山机械设备有限公司|
成都富江机械制造有限公司|
合肥康恒机械有限公司|
三莲机械制造有限公司|
浙江中力机械有限公司|
星塔机械深圳有限公司|
深圳旭生机械有限公司|
北京现代京城工程机械有限公司
|
河南新起点印务有限公司|
山西贝斯特机械制造有限公司|
源通机械设备有限公司|
力升机械有限公司.|
肥城金塔机械有限公司|
河南兴远起重机有限公司|
无锡澳美机械有限公司|
山矿机械设备有限公司|
派克包装机械有限公司|
布勒常州机械有限公司|
唐山经安钢铁有限公司|
上海楚尚机械有限公司|
广东华菱机械有限公司|
杭州华驰机械有限公司|
常州立达纺织机械有限公司
|
上海清河机械有限公司|
广州东昇机械有限公司|
江西柳工机械设备有限公司|
桂林中天机械有限公司|
上海烨昌食品机械有限公司|
威海美盛机械有限公司|
济南龙铸液压机械有限公司
|
江源机械制造有限公司|
河南龙昌机械制造有限公司|
唐山兴隆钢铁有限公司|
无锡腾力机械有限公司|
上海隆麦机械有限公司|
武安市裕华钢铁有限公司|
郑州永联机械有限公司|
郑州液压机械有限公司|
苏州毕特富精密机械有限公司|
吴江精密机械有限公司|
上海戴服特包装机械有限公司
|
杭州萧山凯兴食品机械有限公司|
山东瑞华工程机械有限公司|
江西鑫通机械制造有限公司|
上海天驰制药机械有限公司|
宁波美宁机械有限公司|
成都蓉诚机械设备有限公司|
河北 机械 有限公司|
青岛隆硕农牧机械制造有限公司|
吴江迈锐机械有限公司怎么样
|
江苏红日钢铁有限公司|
常州市丰丰机械有限公司|
广州市金王机械设备有限公司|
阿特拉斯工程机械有限公司|
燕拓航(北京)真空机械有限公司|
好利用机械有限公司|
德龙钢铁有限公司招聘|
佛山市洛德机械设备有限公司|
保定锐腾机械制造有限公司|
贵州红林机械有限公司|
青岛谊金华塑料机械有限公司|
山东莱芜煤矿机械有限公司|
上海尼法机械有限公司|
江阴派格机械设备有限公司|
上海容安木工机械设备有限公司|
南京重霸起重设备有限公司
|
威斯特机械有限公司|
安徽好运机械有限公司|
深圳液压机械有限公司|
成都 精密机械有限公司|
苏州 精密机械有限公司|
德州 机械有限公司|
瑞 机械有限公司|
上海翔展机械有限公司|
重庆宏工工程机械有限公司|
东莞新宇机械有限公司|
迎阳无纺机械有限公司|
朝阳宏达机械有限公司|
众力达机械有限公司|
江苏优轧机械有限公司|
北京建筑机械有限公司|
张家港市港达机械有限公司|
苏州工业园区机械有限公司|
云南昆鼎机械设备有限公司|
东莞市顺翼机械有限公司|
郑州市建新机械制造有限公司|
浙江恒齿传动机械有限公司|
上海嘉亿机械有限公司|
江阴中南重工有限公司|
江苏莱宝机械制造有限公司|
郑州东方重型机械有限公司|
昆山大风机械有限公司|
南通棉花机械有限公司|
济南建筑机械有限公司|
工程有限公司起名大全|
杭州金鸥机械有限公司|
建筑工程有限公司起名|
浙江弘润机械制造有限公司|
广州常富机械有限公司|
杭州大精机械制造有限公司|
江苏新瑞机械有限公司|
江阴西城钢铁有限公司|
河南矿山重型起重机械有限公司
|
临沂园林机械有限公司|
机械自动化有限公司|
唐山燕山钢铁有限公司|
广州西力机械有限公司|
西安 工程机械有限公司|
无锡耀杰机械有限公司|
东莞港重机械有限公司|
玉环县三和机械制造有限公司|
重庆龙建机械有限公司|
沧州怡和机械有限公司|
江阴铸造机械有限公司|
中实洛阳重型机械有限公司实习报告|
辽宁中原机械有限公司|
济南华飞数控机械有限公司|
自动化机械设备有限公司|
江苏炬峰机械有限公司|
重庆华世丹机械制造有限公司|
佛山市强源钢铁有限公司|
湖南嘉龙机械设备贸易有限公司
|
浙江炜冈机械有限公司|
盐城万富隆机械制造有限公司
|
上海机械成套设备有限公司|
三和水工机械有限公司|
唐河大华机械有限公司|
浙江矿山机械有限公司|
哈尔滨工程机械有限公司|
江苏新技机械有限公司|
山东 纺织机械 有限公司|
烟台飞达机械有限公司|
常州市新武机械有限公司|
吉林吉钢钢铁有限公司|
济南 建筑机械有限公司|
艾珍机械设备制造有限公司|
广西五丰机械有限公司|
无锡诺美机械有限公司|
洗涤机械制造有限公司|
山东福临机械制造有限公司|
山推抚起机械有限公司|
哈尔滨机械制造有限公司|
东莞市全永机械制造有限公司
|
安特苏州精密机械有限公司|
西安星火包装机械有限公司|
扬州精密机械有限公司|
唐山文丰钢铁有限公司|
北京精密机械有限公司|
温州贝诺机械有限公司|
温州市鹿城江心服装机械有限公司
|
宏强机械设备有限公司|
汕头机械设备有限公司|
兰州炊事机械有限公司|
江南机械制造有限公司|
粤北联合钢铁有限公司|
南京机械制造有限公司|
苏州奥达机械部件有限公司|
宝鸡 机械有限公司|
东莞市台钢机械设备有限公司|
机械有限公司经营范围|
台州机械制造有限公司|
广东长征机械有限公司|
苏州一工机械有限公司|
溧阳三元钢铁有限公司|
济南 重工有限公司|
埃比西斯机械有限公司|
上海 食品机械有限公司|
建荣精密机械有限公司|
青岛欧普机械设备有限公司|
东莞市鑫国丰机械有限公司|
河北国煤机械制造有限公司|
江西钧天机械有限公司|
河北正大机械有限公司|
江苏沃得农业机械有限公司|
渤海重工管道有限公司|
佛山市洛德机械设备有限公司|
南京机械设备制造有限公司|
玛连尼 法亚机械有限公司|
泉州市劲力工程机械有限公司
|
德瑞机械设备有限公司|
江苏青山机械有限公司|
斯特机械制造有限公司|
金泰机械制造有限公司|
雷肯农业机械有限公司|
广汉市蜀汉粮油机械有限公司|
中兴机械制造有限公司|
广州通泽机械有限公司|
柳州高华机械有限公司|
天津起重机械有限公司|
河北小犟牛工程机械有限公司
|
环保机械制造有限公司|
长沙聚邦机械设备有限公司|
济宁鑫宏工矿机械设备有限公司
|
沈阳重工食品有限公司|
广州市力净洗涤机械有限公司|
鑫盛机械制造有限公司|
布勒机械设备有限公司|
泸州益鑫钢铁有限公司|
淮安液压机械有限公司|
潞城兴宝钢铁有限公司|
宁波将军机械有限公司|
北京骏马机械有限公司|
小松工程机械有限公司|
福建泉工机械有限公司|
浙江君鸿机械有限公司|
尤工机械设备有限公司|
新乡市中轻机械有限公司|
无锡工程机械有限公司|
广东重工建设监理有限公司怎么样|
鼎龙机械制造有限公司|
温州 轻工机械有限公司|
上海起重机有限公司|
上海舒平精工机械有限公司|
凯格精密机械有限公司|
宁波美亚特精密机械有限公司|
苏州市江南石化机械有限公司|
济宁萨奥机械有限公司|
江苏梅花机械有限公司|
苏州典艺精密机械有限公司|
定州市至信机械制造有限公司|
石家庄 钢铁有限公司|
化工有限公司起名大全|
恩格尔机械上海有限公司|
汕头市机械有限公司|
湖南金峰机械有限公司|
常州市日中精密机械有限公司|
宣城市建林机械有限公司|
中山松德印刷机械有限公司|
江阴 机械制造有限公司|
邹平县宏鑫机械制造有限公司
|
五谷酿机械有限公司|
漳州钜钢机械有限公司|
杭州海兴机械有限公司|
深圳市高郭氏精密机械有限公司|
徐州圣邦机械有限公司|
注册机械设备有限公司有什么要求
|
浙江包装机械有限公司|
首钢伊犁钢铁有限公司|
上海起重设备有限公司|
河南华北起重吊钩有限公司|
青县冀丰钢铁有限公司|
锦州俏牌机械有限公司|
建荣精密机械有限公司|
东莞市森人机械有限公司|
广东海天机械有限公司|
农业机械装备有限公司|
郑州一正重工机械有限公司|
沈阳高新机械有限公司|
许昌机械制造有限公司|
无锡森本精密机械有限公司|
江苏柳工机械有限公司|
江阴派格机械设备有限公司|
苏州敏喆机械有限公司|
浙江瑞尔斯机械有限公司|
嘉兴格鲁博机械有限公司|
郑州海特机械有限公司|
飞虎机械制造有限公司|
新麦机械 无锡 有限公司|
山东常美机械有限公司|
山西中宇钢铁有限公司|
无锡市机械有限公司|
成都金瑞建工机械有限公司|
山东冠华重工机械有限公司|
重庆晨翔机械有限公司|
浙江金马逊机械有限公司|
新进精密机械苏州有限公司|
上海机械装备有限公司|
航星洗涤机械(泰州)有限公司|
德州液压机械有限公司|
科达机械制造有限公司|
宁波博旺机械有限公司|
娄底 有限公司 机械|
亿佰通机械有限公司|
杭州金狮机械有限公司|
浙江科鑫重工有限公司|
长沙中京机械有限公司|
深圳美鹏机械设备有限公司|
广州伟基机械有限公司|
上海机械施工有限公司|
武安市文安钢铁有限公司|
重庆明天机械有限公司|
河南卫华起重机有限公司|
杭州三共机械有限公司|
上海德元机械设备有限公司|
四川宏华友信石油机械有限公司|
沈阳 机械 有限公司|
法麦凯尼柯机械有限公司|
温州瑞达机械有限公司|
江苏汉庭机械制造有限公司|
天津石油机械有限公司|
郑州世纪精信机械制造有限公司
|
东莞机械设备制造有限公司|
南通恩派特机械有限公司|
成都瑞迪机械实业有限公司|
无锡金比机械有限公司|
广东华冠钢铁有限公司|
深圳市德机械有限公司|
吉林小松工程机械有限公司|
苏州派普机械有限公司|
杭州杭顺机械有限公司|
启瑞机械广州有限公司|
合肥浩凯机械有限公司|
广东鸿业机械有限公司|
焦作机械制造有限公司|
南昌全球机械有限公司|
德州石油机械有限公司|
江苏恩纳斯重工机械有限公司|
矿山起重机有限公司|
合肥春华起重机械有限公司
|
宁波市机械有限公司|
上海涟恒精密机械有限公司|
上海先德机械工程有限公司|
济南真诺机械有限公司|
上海豪德机械有限公司|
河北东方富达机械有限公司|
杭州迪迪机械有限公司|
广汉市蜀汉粮油机械有限公司|
郑州钰隆机械有限公司|
山西常平钢铁有限公司|
抚顺机械设备制造有限公司|
上海磊友成套机械设备有限公司|
长沙昊博机械设备有限公司
|
南京赛达机械制造有限公司|
吴江聚力机械有限公司|
河北兴华钢铁有限公司|
苏州鼎木机械设备有限公司|
江苏双箭输送机械有限公司|
东莞市凯奥机械有限公司|
平湖市机械有限公司|
广州市日富包装机械有限公司|
浙江上洋机械有限公司|
杭州食品机械有限公司|
纸箱机械制造有限公司|
新乡黄氏食品机械有限公司
|
湖北粮食机械有限公司|
上海天勇机械设备有限公司|
郑州永兴重工机械有限公司|
江苏宏博机械制造有限公司|
瀚乐电子机械有限公司|
华东油压机械制造有限公司|
浙江海蜜机械有限公司|
燕拓航(北京)真空机械有限公司|
东莞市乔锋机械有限公司|
江苏合丰机械制造有限公司|
深圳恒盛力包装机械有限公司|
常州英来机械有限公司|
南京机械制造有限公司|
天津同盈钢铁有限公司|
宁波德霖机械有限公司|
燕拓航(北京)真空机械有限公司|
上海钢铁交易中心有限公司|
徐州圣邦机械有限公司|
上海宏铭纺织机械有限公司|
山东通佳重工有限公司|
常德机械制造有限公司|
青岛顺德塑料机械有限公司|
上海松川远亿机械设备有限公司
|
苏州柯瑞机械有限公司|
起步有限公司上市排名|
斗山工程机械苏州有限公司|
宁波佳尔灵气动机械有限公司|
长沙中南福鼎机械设备有限公司|
环保机械设备有限公司|
上海皆力机械设备有限公司|
长沙中京机械有限公司|
上海金相机械有限公司|
上海捷舟工程机械有限公司|
天津伟业钢铁贸易有限公司|
佛山新元机械有限公司|
金韦尔机械有限公司|
恩格尔注塑机械常州有限公司
|
东莞高恩机械有限公司|
卡骏机械设备有限公司|
广州永晋机械有限公司|
惟其信石油机械(天津)有限公司|
安庆恒昌机械有限公司|
广东海天机械有限公司|
青岛昊悦机械有限公司|
东莞机械设备制造有限公司|
成都固特机械有限公司|
苏州诚亚机械有限公司|
无锡大昌机械工业有限公司|
苏州力强机械制造有限公司|
河北荣信钢铁有限公司|
辽阳新达钢铁有限公司|
山西重工机械有限公司|
上海楚尚机械有限公司|
南京 机械制造有限公司|
昆山圣源机械有限公司|
东莞市力华机械设备有限公司|
湖南卓迪机械有限公司|
扬州精辉试验机械有限公司|
广东省重工建筑设计院有限公司|
bc (執(zhí)行任意精度數(shù)學(xué)計算的語言)
在類似Unix的操作系統(tǒng)上,bc是用于執(zhí)行任意精度數(shù)學(xué)計算的語言,并且是該語言的交互式解釋器。
On Unix-like operating systems, bc is a language for performing arbitrary-precision math calculations, and an interactive interpreter for that language.
查看英文版
查看中文版
1 bc 運行系統(tǒng)環(huán)境
2 bc 說明
3 bc 語法
4 bc 例子
bc 運行系統(tǒng)環(huán)境
Linux
bc 說明
bc是一種支持任意精度數(shù)字的語言,這意味著無論數(shù)字有多大(或非常小),它都能提供準(zhǔn)確的結(jié)果。
它具有交互模式,可以接受來自終端的輸入并根據(jù)要求提供計算。作為一種語言,它的語法類似于C編程語言。使用命令行選項可以使用標(biāo)準(zhǔn)數(shù)學(xué)庫。如果需要,則在處理任何文件之前先定義數(shù)學(xué)庫。
bc首先以列出的順序處理命令行中列出的所有文件中的代碼。處理完所有文件后,bc從標(biāo)準(zhǔn)輸入讀取。所有代碼都在讀取時執(zhí)行。
較新的bc版本包含了對傳統(tǒng)bc實現(xiàn)和POSIX草案標(biāo)準(zhǔn)的擴展。命令行選項可能導(dǎo)致這些擴展名打印警告或被拒絕。本文檔介紹了bc語言的較新版本。如果特定功能是標(biāo)準(zhǔn)的擴展,則在下面相應(yīng)說明。
bc is a language that supports arbitrary-precision numbers, meaning that it delivers accurate results regardless of how large (or very small) the numbers are.
It has an interactive mode, accepting input from the terminal and providing calculations on request. As a language, its syntax is similar to the C programming language. A standard math library is available using a command line option. If requested, the math library is defined before processing any files.
bc starts by processing code from all the files listed on the command line in the order listed. After all files have been processed, bc reads from the standard input. All code is executed as it is read.
Newer versions of bc contain several extensions beyond traditional bc implementations and the POSIX draft standard. Command-line options can cause these extensions to print a warning or to be rejected. This document describes the newer version of the bc language; where a particular function is an extension of the standard, it is noted accordingly below.
查看英文版
查看中文版
bc 語法
選件
-h, --help
打印幫助信息并退出。
-i, --interactive
強制交互模式。
-l, --mathlib
定義標(biāo)準(zhǔn)數(shù)學(xué)庫。
-w, --warn
對POSIX bc的擴展名發(fā)出警告。
-s, --standard
精確處理POSIX bc語言。
-q, --quiet
不要打印普通的GNU bc歡迎消息。
-v, --version
打印版本號和版權(quán)信息,然后退出。
號碼
bc中最基本的元素是數(shù)字。數(shù)字是任意精度的數(shù)字。此精度在整數(shù)部分和小數(shù)部分中都存在。所有數(shù)字內(nèi)部均以十進制表示,所有計算均以十進制表示。某些版本的bc 截斷是除法和乘法運算的結(jié)果。
數(shù)字有兩個屬性,長度和小數(shù)位數(shù)。長度是數(shù)字中有效十進制數(shù)字的總數(shù),小數(shù)位數(shù)是小數(shù)點后的十進制數(shù)字的總數(shù)。例如:
.000001 的長度為6,小數(shù)位數(shù)為6。
1935.000 的長度為7,小數(shù)位數(shù)為3。
變數(shù)
數(shù)字存儲在兩種類型的變量中:簡單變量和數(shù)組。簡單變量和數(shù)組變量都被命名。名稱以字母開頭,后跟任意數(shù)量的字母,數(shù)字和下劃線。所有字母必須為小寫。全字母數(shù)字名稱是擴展名。在POSIX bc中,所有名稱均為單個小寫字母。變量的類型在上下文中是清楚的,因為所有數(shù)組變量名都將后跟方括號([])。 Full alphanumeric names are an extension. In POSIX bc all names are a single lower case letter. The type of variable is clear by the context because all array variable names will be followed by brackets ([]).
有四個特殊變量:scale,ibase,obase和last。
標(biāo)度定義某些操作如何使用小數(shù)點后的數(shù)字。scale的默認(rèn)值為0。
ibase和obase定義輸入和輸出數(shù)字的轉(zhuǎn)換基礎(chǔ)。輸入和輸出的默認(rèn)值為10。
last(擴展名)是一個具有最后打印數(shù)字的值的變量。
所有變量都可以分配有值,并且可以在表達(dá)式中使用。
注釋
評論在公元前開始以字符“ / * ”和結(jié)束與字符“ * / ”。注釋可以在任何地方開始,并在輸入中顯示為單個空格。這將導(dǎo)致注釋分隔其他輸入項。例如,注釋不能放在變量名的中間。注釋包括注釋開頭和結(jié)尾之間的任何換行符(行尾)。
為了支持對bc使用腳本,已添加一行注釋作為擴展名。單行注釋以“ # ”字符開頭,并繼續(xù)到下一行。行尾字符不是注釋的一部分,可以正常處理。
表達(dá)方式
數(shù)字由表達(dá)式和語句操縱。由于該語言被設(shè)計為交互式的,因此語句和表達(dá)式將盡快執(zhí)行。沒有“主”程序;而是在遇到代碼時執(zhí)行代碼。遇到功能時,將定義后面將詳細(xì)討論的功能。
一個簡單的表達(dá)式只是一個常數(shù)。bc使用變量ibase指定的當(dāng)前輸入基數(shù)將常量轉(zhuǎn)換為內(nèi)部十進制數(shù)。函數(shù)中有一個例外。的合法值IBASE是2至16。將超出此范圍的值分配給ibase將得到2或16的值。輸入數(shù)字可能包含字符0-9和AF。注意:它們必須是大寫字母。小寫字母保留用于變量名。不管ibase的值如何,一位數(shù)字始終具有該數(shù)字的值。對于多位數(shù),bc將所有大于或等于ibase的輸入數(shù)字更改為ibase-1的值。這使得數(shù)字FFF始終是輸入基數(shù)的最大3位數(shù)字。
完整表達(dá)式類似于其他高級語言。由于只有一種數(shù)字,因此沒有混合變量類型的規(guī)則。取而代之的是在表達(dá)式范圍內(nèi)有規(guī)則。每個表達(dá)式都有一個比例,該比例是從原始數(shù)字的比例,執(zhí)行的操作以及在許多情況下可變scale的值得出的。可變標(biāo)度的合法值是0到C整數(shù)可表示的最大值。
在以下對合法表達(dá)式的描述中,“ expr ”是指完整表達(dá)式,而“ var ”是指簡單變量或數(shù)組變量。一個簡單的變量只是一個名稱,而一個數(shù)組變量被指定為名稱 [ expr ]。
除非特別說明,結(jié)果的標(biāo)度是所涉及表達(dá)式的最大標(biāo)度。
- expr - 結(jié)果是表達(dá)的否定。
++ var - 變量加1,新值是表達(dá)式的結(jié)果。
-- var - 變量被減一,新值是表達(dá)式的結(jié)果。
var ++ - 表達(dá)式的結(jié)果是變量的值,然后變量加1。
var -- - 表達(dá)的結(jié)果是該變量的值,然后該變量被減一。
expr + expr - 表達(dá)式的結(jié)果是兩個表達(dá)式的總和。
expr - expr - 表達(dá)式的結(jié)果是兩個表達(dá)式的差。
expr * expr - 表達(dá)式的結(jié)果是兩個表達(dá)式的乘積。
expr / expr - 表達(dá)式的結(jié)果是兩個表達(dá)式的商。結(jié)果的標(biāo)度是可變標(biāo)度的值。
expr % expr - 表達(dá)式的結(jié)果為“余數(shù)”,它的計算方式如下。為了計算一%b,第一一/ b被計算為比例位數(shù)。該結(jié)果被用來計算一個- (一/ b )* b的最大的規(guī)模規(guī)模+ 比例(b )和刻度(一)。如果將scale設(shè)置為零,并且兩個表達(dá)式均為整數(shù),則此表達(dá)式為整數(shù)余數(shù)函數(shù)。
expr ^ expr - 表達(dá)式的結(jié)果是第一個的值提高為第二個的冪。第二個表達(dá)式必須是整數(shù)。如果第二個表達(dá)式不是整數(shù),則會生成警告,并且該表達(dá)式將被截斷以獲得整數(shù)值。如果指數(shù)為負(fù),則結(jié)果的小數(shù)位數(shù)為小數(shù)位數(shù)。如果指數(shù)為正,則結(jié)果的標(biāo)度是第一個表達(dá)式的標(biāo)度的最小值乘以指數(shù)的值以及最大的標(biāo)度和第一個表達(dá)式的標(biāo)度。(例如scale(a ^ b )= min(scale (a )* b ,max( scale , scale (a )))。)應(yīng)該注意,expr ^ 0將始終返回值1。
( expr ) - 這會更改標(biāo)準(zhǔn)優(yōu)先級以強制對表達(dá)式進行求值。
var = expr - 為變量分配表達(dá)式的值。
var = expr - 此表達(dá)式等效于“ var = varexpr ”,不同之處在于“ var ”部分僅被評估一次。如果“ var ”是一個數(shù)組,這可以有所作為。
關(guān)系表達(dá)式是一種特殊的表達(dá)始終評估為0或1:0,如果關(guān)系是假的,1,如果關(guān)系是真實的。這些可能以任何法律表達(dá)形式出現(xiàn)。POSIX bc要求僅在if,while和for語句中使用關(guān)系表達(dá)式,并且只能在其中進行一個關(guān)系測試。關(guān)系運算符是:
expr1 < expr2
如果expr1嚴(yán)格小于expr2,則結(jié)果為1 。
expr1 <= expr2
其結(jié)果是1,如果expr1的是小于或等于表達(dá)式2。
expr1 > expr2
如果expr1嚴(yán)格大于expr2,則結(jié)果為1 。
expr1 >= expr2
其結(jié)果是1,如果表達(dá)式1大于或等于表達(dá)式2。
expr1 == expr2
如果expr1等于expr2,則結(jié)果為1 。
expr1 != expr2
如果expr1不等于expr2,則結(jié)果為1 。
布爾運算也是合法的。(POSIX bc沒有布爾操作)。與關(guān)系表達(dá)式中一樣,所有布爾運算的結(jié)果均為0和1(對于false和true)。布爾運算符為:
!expr
如果expr為0,則結(jié)果為1 。
expr && expr
如果兩個表達(dá)式都不為零,則結(jié)果為1。
expr || expr
如果兩個表達(dá)式都不為零,則結(jié)果為1。
表達(dá)式優(yōu)先級如下:(從最低到最高)
選擇該優(yōu)先級是為了使符合POSIX的bc程序能夠正確運行。與賦值表達(dá)式一起使用時,這將導(dǎo)致關(guān)系和邏輯運算符的使用具有某些異常行為。考慮以下表達(dá)式:
大多數(shù)C程序員會假設(shè)這會將結(jié)果“ 3 <5 ”(值1)分配給變量“ a ”。這在bc中的作用是將值3分配給變量“ a ”,然后將3與5進行比較。將關(guān)系運算符和邏輯運算符與賦值運算符一起使用時,最好使用括號。
bc中提供了一些其他特殊表達(dá)式。這些與用戶定義的功能和標(biāo)準(zhǔn)功能有關(guān)。它們都顯示為“ 名稱(參數(shù)) ”。有關(guān)用戶定義的功能,請參見功能部分。標(biāo)準(zhǔn)功能是:
長度( 表達(dá)式 )
長度函數(shù)的值是表達(dá)式中的有效位數(shù)。
閱讀()
讀取功能(擴展)將從標(biāo)準(zhǔn)輸入讀取的數(shù),而不管其中函數(shù)發(fā)生的。請注意,這可能會導(dǎo)致標(biāo)準(zhǔn)輸入中數(shù)據(jù)和程序混合的問題。此功能的最佳用途是在先前編寫的程序中,需要用戶輸入,但絕不允許用戶輸入程序代碼。讀取功能的值是使用轉(zhuǎn)換基礎(chǔ)的變量ibase的當(dāng)前值從標(biāo)準(zhǔn)輸入讀取的數(shù)字。
規(guī)模( 表示 )
標(biāo)度函數(shù)的值是表達(dá)式中小數(shù)點后的位數(shù)。
sqrt( 表達(dá)式 )
sqrt函數(shù)的值是表達(dá)式的平方根。如果表達(dá)式為負(fù),則會生成運行時錯誤。
陳述
語句(與大多數(shù)代數(shù)語言一樣)提供了表達(dá)評估的順序。在bc中,語句“盡快”執(zhí)行。當(dāng)遇到換行符并且存在一個或多個完整語句時,將執(zhí)行執(zhí)行。由于立即執(zhí)行,換行符在bc中很重要。實際上,分號和換行符都用作語句分隔符。換行符放置不當(dāng)會導(dǎo)致語法錯誤。因為換行符是語句分隔符,所以可以使用反斜杠字符來隱藏?fù)Q行符。序列“ \”(其中是換行符)在bc中顯示為空白而不是換行符。語句列表是一系列由分號和換行符分隔的語句。以下是bc語句及其作用的列表:方括號([])中的內(nèi)容是語句的可選部分。
表達(dá)
該語句執(zhí)行以下兩項操作之一。如果表達(dá)式以“... ” 開頭,則將其視為分配語句。如果該表達(dá)式不是賦值語句,則對該表達(dá)式求值并打印到輸出。號碼打印后,將換行。例如,“ a = 1 ”是賦值語句,“ (a = 1) ”是具有嵌入式賦值的表達(dá)式。所有打印的數(shù)字均以變量obase指定的基數(shù)打印。obase的合法值為2到BC_BASE_MAX。(請參閱“限制”一節(jié)。)對于2到16的基數(shù),使用通常的數(shù)字寫方法。使用多字符數(shù)字方法來打印數(shù)字,其中每個較高的基數(shù)都將作為基數(shù)10打印。多字符數(shù)字用空格分隔。每個數(shù)字包含表示“ obase-1 ”的十進制值所需的字符數(shù)。由于數(shù)字具有任意精度,因此某些數(shù)字可能無法在單個輸出行上打印。這些長數(shù)字將使用“ \ ”作為一行的最后一個字符而被分成幾行。每行打印的最大字符數(shù)為70。由于bc的交互性質(zhì),打印數(shù)字會導(dǎo)致最后將打印值分配給特殊變量的副作用。此功能使用戶可以恢復(fù)打印的最后一個值,而不必重新鍵入打印數(shù)字的表達(dá)式。分配給最后一個是合法的,并且將使用分配的值覆蓋最后打印的值。新分配的值將一直保留到下一個數(shù)字被打印或最后一個值被分配為止。某些安裝可能允許使用單個句點(。)作為數(shù)字的縮寫形式,而不是數(shù)字的一部分。
串
該字符串將打印到輸出中。字符串以雙引號字符開頭,并包含所有字符,直到下一個雙引號字符為止。所有字符均按字面意義使用,包括任何換行符。字符串后不打印換行符。
打印 清單
打印語句(擴展)提供輸出的另一方法。“列表”是由逗號分隔的字符串和表達(dá)式的列表。每個字符串或表達(dá)式都按照列表的順序打印。沒有終止換行符被打印。計算表達(dá)式并打印其值,最后將其分配給變量。打印語句中的字符串將打印到輸出中,并且可以包含特殊字符。特殊字符以反斜杠字符(\)開頭。bc識別的特殊字符是“ a ”(警報或鈴聲),“ b ”(退格鍵),“ f ”(換頁),“ n ”(換行符),“ r ”“(雙引號),“ t ”(制表符)和“ \ ”(反斜杠)。反斜杠后面的任何其他字符將被忽略。
{statement_list}
此選項是復(fù)合語句。它允許將多個語句組合在一起執(zhí)行。
if (expression)statement1 [elsestatement2]
如果語句計算表達(dá)式并執(zhí)行語句1或語句2取決于表達(dá)式的值。如果表達(dá)式非零,則執(zhí)行statement1。如果存在statement2并且表達(dá)式的值為0,則執(zhí)行statement2。在其他子句是一個擴展。
while( 表達(dá)式 ) 語句
同時表達(dá)為非零語句將執(zhí)行該語句。它在每次執(zhí)行該語句之前對表達(dá)式求值。循環(huán)的終止是由零表達(dá)式值或執(zhí)行break語句引起的。
for ( [expression1] ; [expression2] ; [expression3] )statement
在對語句控制重復(fù)語句的執(zhí)行。在循環(huán)之前對Expression1求值。在每次執(zhí)行該語句之前對Expression2進行求值。如果非零,則對語句進行評估。如果為零,則終止循環(huán)。在每次執(zhí)行該語句之后,在重新計算expression2之前先對expression3進行評估。如果缺少expression1或expression3,則在將要評估它們時將不評估任何內(nèi)容。如果缺少expression2,則與將值1替換為expression2相同。。可選表達(dá)式是擴展。POSIX bc需要所有三個表達(dá)式。以下是for語句的等效代碼:
打破
該語句導(dǎo)致最近的while語句或for語句的強制退出。
繼續(xù)
在繼續(xù)語句(擴展)導(dǎo)致最近的封閉for語句開始下一次迭代。
停止
停止聲明(擴展),是一個執(zhí)行的語句引起B(yǎng)C被執(zhí)行時,它向處理器僅退出。例如,“ if(0 == 1)halt ”將不會導(dǎo)致bc終止,因為未執(zhí)行暫停。
返回
從函數(shù)返回值0。(請參閱有關(guān)功能的部分。)
返回( 表達(dá)式 )
從函數(shù)返回表達(dá)式的值。(請參見函數(shù)部分。)作為擴展,不需要括號。
偽陳述
這些陳述不是傳統(tǒng)意義上的陳述。它們不是已執(zhí)行的語句。它們的功能在“編譯”時執(zhí)行。
極限
打印由本地版本bc強制執(zhí)行的本地限制。(這是一個擴展。)
退出
當(dāng)退出讀聲明時,卑詩處理器被終止,無論在哪里退出聲明中找到。例如,“ if(0 == 1)quit ”將導(dǎo)致bc終止。
保證
打印保修通知。(這是一個擴展。)
功能
函數(shù)提供了一種定義可以稍后執(zhí)行的計算的方法。bc中的函數(shù)總是計算值并將其返回給調(diào)用方。函數(shù)定義是“動態(tài)的”,即直到在輸入中遇到定義之前才定義函數(shù)。然后使用該定義,直到遇到另一個具有相同名稱的定義函數(shù)。然后,新定義將替換舊定義。函數(shù)定義如下:
函數(shù)調(diào)用只是形式為“名稱(參數(shù))”的表達(dá)式。
參數(shù)是數(shù)字或數(shù)組(擴展名)。在函數(shù)定義中,零個或多個參數(shù)通過列出用逗號分隔的名稱來定義。所有參數(shù)均按值參數(shù)調(diào)用。數(shù)組在參數(shù)定義中用符號“ name [] ”指定。在函數(shù)調(diào)用中,實際參數(shù)是數(shù)字參數(shù)的完整表達(dá)式。傳遞數(shù)組和定義數(shù)組參數(shù)使用相同的符號。命名數(shù)組按值傳遞給函數(shù)。由于函數(shù)定義是動態(tài)的,因此在調(diào)用函數(shù)時會檢查參數(shù)編號和類型。參數(shù)數(shù)量或類型的任何不匹配都將導(dǎo)致運行時錯誤。調(diào)用未定義函數(shù)也會發(fā)生運行時錯誤。
該AUTO_LIST是那些對“本地”使用變量的可選列表。自動列表的語法(如果存在)為“ 自動名稱,...; ”。分號是可選的。每個名字是自動變量的名稱。可以使用與參數(shù)中相同的符號來指定數(shù)組。這些變量的值在函數(shù)開始時被壓入堆棧。然后將變量初始化為零,并在整個函數(shù)執(zhí)行過程中使用它們。在函數(shù)退出時,將彈出這些變量,以便恢復(fù)這些變量的原始值(在函數(shù)調(diào)用時)。參數(shù)實際上是自動變量,它們被初始化為函數(shù)調(diào)用中提供的值。自動變量與傳統(tǒng)的局部變量不同,因為如果函數(shù)A調(diào)用函數(shù)B,則B可以僅使用相同的名稱訪問函數(shù)A的自動變量,除非函數(shù)B稱它們?yōu)樽詣幼兞俊R驗樵撟詣幼兞亢蛥?shù)被壓入堆棧,所以bc支持遞歸函數(shù)。
函數(shù)主體是bc語句的列表。同樣,語句之間用分號或換行符分隔。Return語句導(dǎo)致函數(shù)終止并返回值。return語句有兩種版本。第一種形式“ return ”將值0返回給調(diào)用表達(dá)式。第二種形式“ return(expression) ”,計算表達(dá)式的值,并將該值返回給調(diào)用表達(dá)式。每個函數(shù)的末尾都有一個隱含的“ return(0) ”,它允許函數(shù)終止并返回0,而無需顯式的return語句。
函數(shù)還更改變量ibase的用法。函數(shù)主體中的所有常量將在函數(shù)調(diào)用時使用ibase的值進行轉(zhuǎn)換。在執(zhí)行函數(shù)期間,ibase的更改將被忽略,但標(biāo)準(zhǔn)函數(shù)讀取除外,它將始終使用ibase的當(dāng)前值進行數(shù)字轉(zhuǎn)換。
一些擴展已添加到功能。首先,定義的格式已經(jīng)稍微放松了。該標(biāo)準(zhǔn)要求開括號與define關(guān)鍵字位于同一行,而所有其他部分必須位于以下行。較新版本的bc允許在函數(shù)的大括號之前和之后的任意數(shù)量的換行符。例如,以下定義是合法的。
函數(shù)可以定義為void。void函數(shù)不返回任何值,因此可能無法在需要該值的任何地方使用。當(dāng)在輸入線上被自己調(diào)用時,void函數(shù)不會產(chǎn)生任何輸出。關(guān)鍵字void放置在關(guān)鍵字定義和功能名稱之間。例如,考慮以下會話。
由于py不是void函數(shù),因此對py(1)的調(diào)用將打印所需的輸出,然后打印第二行,即該函數(shù)的值。由于未提供顯式return語句的函數(shù)的值為零,因此將打印零。對于px(1),不會打印零,因為該函數(shù)是void函數(shù)。
此外,增加了對數(shù)組的變量調(diào)用。要通過變量array聲明調(diào)用,函數(shù)定義中的array參數(shù)的聲明類似于“ * name [] ”。對函數(shù)的調(diào)用與按值數(shù)組調(diào)用相同。
數(shù)學(xué)庫
如果使用-l選項調(diào)用bc,則會預(yù)先加載數(shù)學(xué)庫,并且默認(rèn)比例設(shè)置為20。數(shù)學(xué)函數(shù)會將其結(jié)果計算為調(diào)用時設(shè)置的比例。數(shù)學(xué)庫定義以下功能:
Options
-h, --help
Print a help message and exit.
-i, --interactive
Force interactive mode.
-l, --mathlib
Define the standard math library.
-w, --warn
Give warnings for extensions to POSIX bc.
-s, --standard
Process exactly the POSIX bc language.
-q, --quiet
Do not print the normal GNU bc welcome message.
-v, --version
Print the version number and Copyright information, and exit.
Numbers
The most basic element in bc is the number. Numbers are arbitrary-precision numbers. This precision is both in the integer part and the fractional part. All numbers are represented internally in decimal and all computation is done in decimal. Some versions of bc truncate results from divide and multiply operations.
There are two attributes of numbers, the length and the scale. The length is the total number of significant decimal digits in a number and the scale is the total number of decimal digits after the decimal point. For example:
.000001 has a length of 6 and scale of 6.
1935.000 has a length of 7 and a scale of 3.
Variables
Numbers are stored in two types of variables: simple variables and arrays. Both simple variables and array variables are named. Names begin with a letter followed by any number of letters, digits and underscores. All letters must be lowercase. Full alphanumeric names are an extension. In POSIX bc all names are a single lower case letter. The type of variable is clear by the context because all array variable names will be followed by brackets ([]).
There are four special variables: scale, ibase, obase, and last.
scale defines how some operations use digits after the decimal point. The default value of scale is 0.
ibase and obase define the conversion base for input and output numbers. The default for both input and output is base 10.
last (an extension) is a variable that has the value of the last printed number.
All variables may have values assigned to them, and can be used in expressions.
Comments
Comments in bc start with the characters "/*" and end with the characters "*/". Comments may start anywhere and appear as a single space in the input. This causes comments to delimit other input items. For example, a comment can not be placed in the middle of a variable name. Comments include any newlines (end of line) between the start and the end of the comment.
To support the use of scripts for bc, a single line comment has been added as an extension. A single line comment starts at a "#" character and continues to the next end-of-line. The end-of-line character is not part of the comment and is processed normally.
Expressions
Numbers are manipulated by expressions and statements. Since the language was designed to be interactive, statements and expressions are executed as soon as possible. There is no "main" program; instead, code is executed as it is encountered. Functions, discussed in detail later, are defined when encountered.
A simple expression is just a constant. bc converts constants into internal decimal numbers using the current input base, specified by the variable ibase. There is an exception in functions. The legal values of ibase are 2 through 16. Assigning a value outside this range to ibase will result in a value of 2 or 16. Input numbers may contain the characters 0-9 and A-F. Note: They must be capital letters. Lowercase letters are reserved for variable names. Single-digit numbers always have the value of the digit regardless of the value of ibase. For multi-digit numbers, bc changes all input digits greater or equal to ibase to the value of ibase-1. This makes the number FFF always be the largest 3-digit number of the input base.
Full expressions are similar to other high-level languages. Since there is only one kind of number, there are no rules for mixing variable types. Instead, there are rules on the scale of expressions. Every expression has a scale that is derived from the scale of original numbers, the operation performed, and in many cases, the value of the variable scale. Legal values of the variable scale are 0 to the maximum number representable by a C integer.
In the following descriptions of legal expressions, "expr" refers to a complete expression and "var" refers to a simple or array variable. A simple variable is just a name and an array variable is specified as name[expr].
Unless specifically mentioned the scale of the result is the maximum scale of the expressions involved.
- expr - The result is the negation of the expression.
++ var - The variable is incremented by one and the new value is the result of the expression.
-- var - The variable is decremented by one and the new value is the result of the expression.
var ++ - The result of the expression is the value of the variable and then the variable is incremented by one.
var -- - The result of the expression is the value of the variable and then the variable is decremented by one.
expr + expr - The result of the expression is the sum of the two expressions.
expr - expr - The result of the expression is the difference of the two expressions.
expr * expr - The result of the expression is the product of the two expressions.
expr / expr - The result of the expression is the quotient of the two expressions. The scale of the result is the value of the variable scale.
expr % expr - The result of the expression is the "remainder" and it is computed in the following way. To compute a%b, first a/b is computed to scale digits. That result is used to compute a-(a/b)*b to the scale of the maximum of scale+scale(b) and scale(a). If scale is set to zero and both expressions are integers this expression is the integer remainder function.
expr ^ expr - The result of the expression is the value of the first raised to the power of the second. The second expression must be an integer. If the second expression is not an integer, a warning is generated and the expression is truncated to get an integer value. The scale of the result is scale if the exponent is negative. If the exponent is positive the scale of the result is the minimum of the scale of the first expression times the value of the exponent and the maximum of scale and the scale of the first expression. (e.g., scale(a^b) = min(scale(a)*b, max(scale, scale(a))).) It should be noted that expr^0 will always return the value of 1.
( expr ) - This alters the standard precedence to force the evaluation of the expression.
var = expr - The variable is assigned the value of the expression.
var = expr - This expression is equivalent to "var = varexpr" with the exception that the "var" part is evaluated only once. This can make a difference if "var" is an array.
Relational expressions are a special kind of expression that always evaluate to 0 or 1: 0 if the relation is false and 1 if the relation is true. These may appear in any legal expression. POSIX bc requires that relational expressions are used only in if, while, and for statements and that only one relational test may be done in them. The relational operators are:
expr1 < expr2
The result is 1 if expr1 is strictly less than expr2.
expr1 <= expr2
The result is 1 if expr1 is less than or equal to expr2.
expr1 > expr2
The result is 1 if expr1 is strictly greater than expr2.
expr1 >= expr2
The result is 1 if expr1 is greater than or equal to expr2.
expr1 == expr2
The result is 1 if expr1 is equal to expr2.
expr1 != expr2
The result is 1 if expr1 is not equal to expr2.
Boolean operations are also legal. (POSIX bc does NOT have boolean operations). The result of all boolean operations are 0 and 1 (for false and true) as in relational expressions. The boolean operators are:
!expr
The result is 1 if expr is 0.
expr && expr
The result is 1 if both expressions are non-zero.
expr || expr
The result is 1 if either expression is non-zero.
The expression precedence is as follows: (lowest to highest)
This precedence was chosen so that POSIX-compliant bc programs will run correctly. This will cause the use of the relational and logical operators to have some unusual behavior when used with assignment expressions. Consider the expression:
Most C programmers would assume this would assign the result of "3 < 5" (the value 1) to the variable "a". What this does in bc is assign the value 3 to the variable "a" and then compare 3 to 5. It is best to use parenthesis when using relational and logical operators with the assignment operators.
There are a few more special expressions that are provided in bc. These have to do with user defined functions and standard functions. They all appear as "name(parameters)". See the section on functions for user defined functions. The standard functions are:
length ( expression )
The value of the length function is the number of significant digits in the expression.
read ( )
The read function (an extension) will read a number from the standard input, regardless of where the function occurs. Beware, this can cause problems with the mixing of data and program in the standard input. The best use for this function is in a previously written program that needs input from the user, but never allows program code to be input from the user. The value of the read function is the number read from the standard input using the current value of the variable ibase for the conversion base.
scale ( expression )
The value of the scale function is the number of digits after the decimal point in the expression.
sqrt ( expression )
The value of the sqrt function is the square root of the expression. If the expression is negative, a runtime error is generated.
Statements
Statements (as in most algebraic languages) provide the sequencing of expression evaluation. In bc, statements are executed "as soon as possible." Execution happens when a newline is encountered and there are one or more complete statements. Due to this immediate execution, newlines are important in bc. In fact, both a semicolon and a newline are used as statement separators. An improperly placed newline will cause a syntax error. Because newlines are statement separators, it is possible to hide a newline by using the backslash character. The sequence "\", where is the newline, appears to bc as whitespace instead of a newline. A statement list is a series of statements separated by semicolons and newlines. The following is a list of bc statements and what they do: Things enclosed in brackets ([]) are optional parts of the statement.
expression
This statement does one of two things. If the expression starts with "...", it is considered to be an assignment statement. If the expression is not an assignment statement, the expression is evaluated and printed to the output. After the number is printed, a newline is printed. For example, "a=1" is an assignment statement and "(a=1)" is an expression that has an embedded assignment. All numbers that are printed are printed in the base specified by the variable obase. The legal values for obase are 2 through BC_BASE_MAX. (See the section "Limits.") For bases 2 through 16, the usual method of writing numbers is used. For bases greater than 16, bc uses a multi-character digit method of printing the numbers where each higher base digit is printed as a base 10 number. The multi-character digits are separated by spaces. Each digit contains the number of characters required to represent the base ten value of "obase-1". Since numbers are of arbitrary precision, some numbers may not be printable on a single output line. These long numbers will be split across lines using the "\" as the last character on a line. The maximum number of characters printed per line is 70. Due to the interactive nature of bc, printing a number causes the side effect of assigning the printed value to the special variable last. This feature allows the user to recover the last value printed without having to retype the expression that printed the number. Assigning to last is legal and will overwrite the last printed value with the assigned value. The newly assigned value will remain until the next number is printed or another value is assigned to last. Some installations may allow the use of a single period (.) which is not part of a number as a short hand notation for for last.
string
The string is printed to the output. Strings start with a double quote character and contain all characters until the next double quote character. All characters are take literally, including any newline. No newline character is printed after the string.
print list
The print statement (an extension) provides another method of output. The "list" is a list of strings and expressions separated by commas. Each string or expression is printed in the order of the list. No terminating newline is printed. Expressions are evaluated and their value is printed and assigned to the variable last. Strings in the print statement are printed to the output and may contain special characters. Special characters start with the backslash character (\). The special characters recognized by bc are "a" (alert or bell), "b" (backspace), "f" (form feed), "n" (newline), "r" (carriage return), "q" (double quote), "t" (tab), and "\" (backslash). Any other character following the backslash will be ignored.
{statement_list}
This option is the compound statement. It allows multiple statements to be grouped together for execution.
if (expression)statement1 [elsestatement2]
The if statement evaluates the expression and executes statement1 or statement2 depending on the value of the expression. If the expression is non-zero, statement1 is executed. If statement2 is present and the value of the expression is 0, then statement2 is executed. The else clause is an extension.
while ( expression )statement
The while statement will execute the statement while the expression is non-zero. It evaluates the expression before each execution of the statement. Termination of the loop is caused by a zero expression value or the execution of a break statement.
for ( [expression1] ; [expression2] ; [expression3] )statement
The for statement controls repeated execution of the statement. Expression1 is evaluated before the loop. Expression2 is evaluated before each execution of the statement. If it is non-zero, the statement is evaluated. If it is zero, the loop is terminated. After each execution of the statement, expression3 is evaluated before the reevaluation of expression2. If expression1 or expression3 are missing, nothing is evaluated at the point they would be evaluated. If expression2 is missing, it is the same as substituting the value 1 for expression2. The optional expressions are an extension. POSIX bc requires all three expressions. The following is equivalent code for the for statement:
break
This statement causes a forced exit of the most recent enclosing while statement or for statement.
continue
The continue statement (an extension) causes the most recent enclosing for statement to start the next iteration.
halt
The halt statement (an extension) is an executed statement that causes the bc processor to quit only when it is executed. For example, "if (0 == 1) halt" will not cause bc to terminate because the halt is not executed.
return
Return the value 0 from a function. (See the section on functions.)
return ( expression )
Return the value of the expression from a function. (See the section on functions.) As an extension, the parenthesis are not required.
Pseudo Statements
These statements are not statements in the traditional sense. They are not executed statements. Their function is performed at "compile" time.
limits
Print the local limits enforced by the local version of bc. (This is an extension.)
quit
When the quit statement is read, the bc processor is terminated, regardless of where the quit statement is found. For example, "if (0 == 1) quit" will cause bc to terminate.
warranty
Print a warranty notice. (This is an extension.)
Functions
Functions provide a method of defining a computation that can be executed later. Functions in bc always compute a value and return it to the caller. Function definitions are "dynamic" in the sense that a function is undefined until a definition is encountered in the input. That definition is then used until another definition function for the same name is encountered. The new definition then replaces the older definition. A function is defined as follows:
A function call is just an expression of the form "name(parameters)".
Parameters are numbers or arrays (an extension). In the function definition, zero or more parameters are defined by listing their names separated by commas. All parameters are call by value parameters. Arrays are specified in the parameter definition by the notation "name[]". In the function call, actual parameters are full expressions for number parameters. The same notation is used for passing arrays as for defining array parameters. The named array is passed by value to the function. Since function definitions are dynamic, parameter numbers and types are checked when a function is called. Any mismatch in number or types of parameters will cause a runtime error. A runtime error will also occur for the call to an undefined function.
The auto_list is an optional list of variables that are for "local" use. The syntax of the auto list (if present) is "auto name, ... ;". The semicolon is optional. Each name is the name of an auto variable. Arrays may be specified by using the same notation as used in parameters. These variables have their values pushed onto a stack at the start of the function. The variables are then initialized to zero and used throughout the execution of the function. At function exit, these variables are popped so that the original value (at the time of the function call) of these variables are restored. The parameters are really auto variables that are initialized to a value provided in the function call. Auto variables are different than traditional local variables because if function A calls function B, B may access function A's auto variables by just using the same name, unless function B has called them auto variables. Because that auto variables and parameters are pushed onto a stack, bc supports recursive functions.
The function body is a list of bc statements. Again, statements are separated by semicolons or newlines. Return statements cause the termination of a function and the return of a value. There are two versions of the return statement. The first form, "return", returns the value 0 to the calling expression. The second form, "return ( expression )", computes the value of the expression and returns that value to the calling expression. There is an implied "return (0)" at the end of every function, which allows a function to terminate and return 0 without an explicit return statement.
Functions also change the usage of the variable ibase. All constants in the function body will be converted using the value of ibase at the time of the function call. Changes of ibase will be ignored during the execution of the function except for the standard function read, which will always use the current value of ibase for conversion of numbers.
Several extensions have been added to functions. First, the format of the definition has been slightly relaxed. The standard requires the opening brace be on the same line as the define keyword and all other parts must be on following lines. Newer versions of bc will allow any number of newlines before and after the opening brace of the function. For example, the following definitions are legal.
Functions may be defined as void. A void function returns no value and thus may not be used in any place that needs a value. A void function does not produce any output when called by itself on an input line. The key word void is placed between the key word define and the function name. For example, consider the following session.
Since py is not a void function, the call of py(1) prints the desired output and then prints a second line that is the value of the function. Since the value of a function that is not given an explicit return statement is zero, the zero is printed. For px(1), no zero is printed because the function is a void function.
Also, call by variable for arrays was added. To declare a call by variable array, the declaration of the array parameter in the function definition looks like "*name[]". The call to the function remains the same as call by value arrays.
Math Library
If bc is invoked with the -l option, a math library is preloaded and the default scale is set to 20. The math functions will calculate their results to the scale set at the time of their call. The math library defines the following functions:
查看英文版
查看中文版
bc 例子
在sh中,以下代碼將pi的值分配給shell變量pi。在這里,a表示反正切函數(shù),它是使用-l選項加載的數(shù)學(xué)庫的一部分:
以下是數(shù)學(xué)庫中使用的指數(shù)函數(shù)的定義。該函數(shù)用POSIX bc編寫。
以下是使用bc的擴展功能實現(xiàn)用于計算支票簿余額的簡單程序的代碼。最好將該程序保存在文件中,以便可以多次使用它,而不必每次使用都重新鍵入它。
以下是遞歸階乘函數(shù)的定義。
In sh, the following code will assign the value of pi to the shell variable pi. Here, a refers to the arctangent function, which is part of the math library loaded with the -l option:
The following is the definition of the exponential function used in the math library. This function is written in POSIX bc.
The following is code that uses the extended features of bc to implement a simple program for calculating checkbook balances. This program is best kept in a file so that it can be used many times without having to retype it at every use.
The following is the definition of the recursive factorial function.
查看英文版
查看中文版
其他命令行
basename | bdiff | bfs | bg | biff | bs | break |