tkcomcom1is tkcomcom1is 2014-06-22 00:38:00

[C] アとイ? このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

自前のatoi関数。一応動くけどさ……。

※追記:16進数のatoiですが、先頭の"0x"を省略したもの(例えば"A68D")を引数に渡しています。
なお、A~Fは大文字で渡す決まりになっていますが、実際のところかなり適当で、小文字にしたもの(例えば"a68d")を渡しているところもちらほら……。

(6/22 追記)1ヶ所ミスがあったので、訂正しました。

/**
 * 10進数の文字列から数値に変換する。
 */

int ato1_dec(char *str, int keta) {
    int result = 0;
    int i;
    int kurai;
    int k = keta;
    for (i = 0; i < keta; i++) {
        if (k == 2) kurai = 10;
        if (k == 3) kurai = 100;
        if (k == 4) kurai = 1000;
        if (k == 5) kurai = 10000;
        if (k == 6) kurai = 100000;
        if (k == 7) kurai = 1000000;
        if (k == 8) kurai = 10000000;
        if (k == 9) kurai = 100000000;
        result += kurai * (str[i] & 0x0f);
    }
    return result;
}

/**
 * 16進数の文字列から数値に変換する。
 */
int ato1_hex(char *str, int keta) {
    int result = 0;
    int i;
    int kurai;
    int value;
    int k = keta;
    for (i = keta-1; i >= 0; i--) {
        value = (str[i] > 0x40 ? 9 : 0) + (str[i] & 0x0f);
        result = result << 4 + value;
    }
    return result;
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント

まだコメントがありません。最初にコメントを残しませんか?

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[PHP] switch文の乱用

このエントリーをはてなブックマークに追加

臭うファイルがあったので開いてみたら・・...

switch($mode){
case "a":
case "b":
ca...

鑑賞する »

[VBA] 掲示板?コード?それとも・・。

このエントリーをはてなブックマークに追加

製品パッケージ化されたソフトに入っていた...

Option Explicit

'130 名前:名無しさん 投稿日: 20...

鑑賞する »